如何加载图像 url 以适合我在 android 中的 webview?
Posted
技术标签:
【中文标题】如何加载图像 url 以适合我在 android 中的 webview?【英文标题】:How can i load image url to fit my webview in android? 【发布时间】:2012-11-10 19:16:10 【问题描述】:我正在开发一个 android 应用程序。这里我在 webview 中显示一个 url 图像。但是该图像不适合我的网络视图。有人建议使用视口概念。但我无法完美地使用它。我以绘图形式附上了我的问题并附有解释。我用过
mWebView.getSettings().setUseWideViewPort (true);
但没有得到好的结果。 我需要在包括 7 英寸、10 英寸平板电脑在内的所有分辨率设备中显示拟合图像。 因此,请查看随附的图片,并建议我将 url 图片放入我的 webview 位置的正确方法。我想显示与第三张图相同的图像。
这是我加载图片的代码:
webView = (WebView) findViewById(R.id.webimage);
WebSettings webSettings = imageView.getSettings();
webSettings.setLoadsImagesAutomatically(true);
webSettings.setSupportZoom(true) ;
webSettings.setBuiltInZoomControls(true);
webView.setBackgroundColor(Color.TRANSPARENT);
webView.getSettings().setUseWideViewPort (true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.setWebViewClient(new WebViewClient()
//some dialog implementation
webView.loadUrl(myurl);
【问题讨论】:
网址图片是否来自 html 页面?你会动手做 html 代码吗? 你能把你到目前为止用过的代码放上来吗 感谢您的快速响应。我通过添加我用来在 webview 中加载图像的代码来编辑我的问题 【参考方案1】:可以将img的width属性设置为100%
,不要设置height属性
<body >
<img id="resizeImage" src="you_image.png" />
</body>
已编辑: 其实我也有同样的问题。但是我仍然在等待正确的答案。
你可以参考我的问题HERE
虽然我已经通过设备的managing height and Width
用技巧解决了这个问题。并使用wv.setInitialScale(185);
默认缩放将在左上角。
我已经把我的代码放在下面了。
WindowManager mWinMgr;
public static int displayWidth = 0, displayHeight = 0;
@Override
protected void onCreate(Bundle icicle)
// TODO Auto-generated method stub
super.onCreate(icicle);
// this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
// this.setProgressBarVisibility(true);
mWinMgr = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
displayWidth = mWinMgr.getDefaultDisplay().getWidth();
displayHeight = mWinMgr.getDefaultDisplay().getHeight();
setContentView(R.layout.view_my_poops);
try
Map_Type = getIntent().getExtras().getString("MAP_TYPE");
catch (Exception e)
Log.i(TAG, "MAP TYPE" + Map_Type);
@SuppressLint("SetjavascriptEnabled")
@Override
protected void onResume()
// TODO Auto-generated method stub
super.onResume();
WebView wv;
wv = (WebView) findViewById(R.id.webview_MyPoops);
wv.getSettings().setJavaScriptEnabled(true);
// this.setProgressBarVisibility(true);
if (displayWidth >= 552 && displayHeight >= 976 || displayWidth >= 976
&& displayHeight >= 552)
wv.setInitialScale(185);
else
// wv.setInitialScale(150);
// wv.setInitialScale(30);
URL = "YOUR_URL";
Log.i(TAG, "Loading URL" + URL);
final Activity activity = ViewMyPoop.this;
wv.setWebChromeClient(new WebChromeClient()
public void onProgressChanged(WebView view, int progress)
// TODO Auto-generated method stub
// Log.i(TAG, "Inside OnProgress Changed" + URL);
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if (progress == 100)
activity.setTitle("My title");
);
wv.loadUrl(URL);
wv.setWebViewClient(new WebViewClient());
希望对您有所帮助。
【讨论】:
感谢您的回复。我无法编辑 html 源代码。只是我正在获取图像链接 api 调用 我需要在所有设备上运行我的应用程序,比如平板电脑和笔记 是的,它将在所有设备上运行。你可以试试看。但问题是我们不会让图像 100% 适合每台设备。但通过实施它。您可以获得 90% 的解决方案。我也在等待另一个有效的答案。 这个答案确实帮了我,这应该被接受为正确答案,【参考方案2】:你是否尝试以下代码来解决上述问题:-
Display display = getWindowManager().getDefaultDisplay();
int width=display.getWidth();
String data="<html><head><title>Example</title><meta name=\"viewport\"\"content=\", initial-scale=0.65 \" /></head>";
data=data+"<body><center><img width=\""+width+"\" src=\""+url+"\" /></center></body></html>";
webView.loadData(data, "text/html", null);
【讨论】:
【参考方案3】:你可以试试这个:
webView.setInitialScale(30);
WebSettings webSettings = webView.getSettings();
webSettings.setUseWideViewPort(true);
参考:link
【讨论】:
但我无法编辑 html 源代码。只是我正在获取图像链接 api 调用。仍然没有得到 好的,那么只需使用 webview 设置的代码。我想它会帮助你。忽略html部分。 不,我也试过了,但我的图像显示为附件图中的第一张图 在这里添加我的 webview 代码:以上是关于如何加载图像 url 以适合我在 android 中的 webview?的主要内容,如果未能解决你的问题,请参考以下文章
Android Webview - 使用一个 loadUrl 缩放图像以正确适合屏幕
如何在android中使用imageloader释放位图内存?
如何将图像从 url 加载到小部件的 android 远程视图中