我正在开发一个Android应用程序。我在webview中显示一个url图像。但是图像不适合我的webview。有人建议使用视口概念。但我无法完美地使用它。我以图纸的形式附上我的问题并附上解释。我用了
mWebView.getSettings().setUseWideViewPort (true);
但没有得到好结果。 我需要在所有分辨率设备中显示合适的图像,包括7英寸,10英寸平板电脑。 所以请查看附图并建议我在网页浏览地点放置网址图片的正确方法。我想在第3张图中显示我的图像。
以下是我加载图片的代码:
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);
答案 0 :(得分:2)
您可以将 img 的宽度属性设置为100%
,不要设置高度属性
<body >
<img id="resizeImage" src="you_image.png" width="100%" alt="" />
</body>
已编辑: 其实我也有同样的问题。但是,我还在等待正确的答案。
你可以引用我的问题HERE
虽然我通过设备的managing height and Width
管理了一些如何解决这个问题。使用wv.setInitialScale(185);
ByDefault,缩放将位于左上角。
我已将我的代码放在下面。
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());
}
希望它会帮助你。
答案 1 :(得分:1)
您是否尝试使用以下代码解决上述问题: -
Display display = getWindowManager().getDefaultDisplay();
int width=display.getWidth();
String data="<html><head><title>Example</title><meta name=\"viewport\"\"content=\"width="+width+", initial-scale=0.65 \" /></head>";
data=data+"<body><center><img width=\""+width+"\" src=\""+url+"\" /></center></body></html>";
webView.loadData(data, "text/html", null);
答案 2 :(得分:0)
你可以试试这个:
webView.setInitialScale(30);
WebSettings webSettings = webView.getSettings();
webSettings.setUseWideViewPort(true);
参考:link