但是如果我重载shouldOverrideLoadding在自己的webview里面打开,那么打开的网页是放大的。
我代码中打印的值:(上面两种方式都是这样的结果)
Scale =2.0
screenDensity=320
PS:
1、我是为了打开我本地的HTML文件所以写了这个simple code来测试,因为我之前写的webview打开我的widget也是放大的;
我的widget在PC上打开是正常的。
2、这个是在TV上测试的代码。就是智能TV。android4.3平台
疑问:
1、我的猜想是我的webview设置哪里出错了或者没有设置,各位谁有法子经验,求解疑回答下==。
2、如果我在webview这边还是搞不出来,是不是可以从HTML5的自适应来考虑?
public class WebviewTestActivity extends Activity
{
WebView myWebView;
TextView displayText;
final static String TAG="WebviewTestActivity=>";
//Button bnt1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myWebView = (WebView)findViewById(R.id.webview_id);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.requestFocus();
//
myWebView.getSettings().setSupportZoom(true);
//
myWebView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);
myWebView.getSettings().setSupportMultipleWindows(false);
myWebView.getSettings().setUserAgentString("Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5");
//
myWebView.getSettings().setBuiltInZoomControls(true);
//myWebView.getSettings().setJavaScriptEnabled(true);
/*
myWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideLoadding(WebView view,String url){
view.loadUrl(url);
return true;
}
});*/
myWebView.loadUrl("http://www.ifeng.com");
String Scale = String.valueOf(myWebView.getScale());
Log.i(TAG,"--Scale:--"+Scale);
int screenDensity=getResources().getDisplayMetrics().densityDpi;
Log.i(TAG, "--screenDensity:--"+String.valueOf(screenDensity)); //60-160-240
}
}
2 个解决方案
#1
你试试我这个封装好的加载webservice的方法喃
private void setMenuWeb(WebView web) {// 设置主页面的WebView
web.getSettings().setJavaScriptEnabled(true);
// web.getSettings().setBuiltInZoomControls(true);
// web.getSettings().setDisplayZoomControls(false);
web.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String strUrl) {
view.loadUrl(strUrl);
tvUrl.setText(strUrl);
return false;
}
@Override
public void onPageStarted(WebView view, String strUrl,
Bitmap favicon) {
super.onPageStarted(view, strUrl, favicon);
tvUrl.setText(strUrl);
}
@Override
public void onPageFinished(WebView view, String strUrl) {
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
}
});
web.loadUrl(homePage);// 打开浏览器
}
#2
myWebView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);
你这里设置了使用中等字体,你可以试一下用小号的试一下 ,可以设置很多个大小选项
你这里设置了使用中等字体,你可以试一下用小号的试一下 ,可以设置很多个大小选项
#1
你试试我这个封装好的加载webservice的方法喃
private void setMenuWeb(WebView web) {// 设置主页面的WebView
web.getSettings().setJavaScriptEnabled(true);
// web.getSettings().setBuiltInZoomControls(true);
// web.getSettings().setDisplayZoomControls(false);
web.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String strUrl) {
view.loadUrl(strUrl);
tvUrl.setText(strUrl);
return false;
}
@Override
public void onPageStarted(WebView view, String strUrl,
Bitmap favicon) {
super.onPageStarted(view, strUrl, favicon);
tvUrl.setText(strUrl);
}
@Override
public void onPageFinished(WebView view, String strUrl) {
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
}
});
web.loadUrl(homePage);// 打开浏览器
}
#2
myWebView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);
你这里设置了使用中等字体,你可以试一下用小号的试一下 ,可以设置很多个大小选项
你这里设置了使用中等字体,你可以试一下用小号的试一下 ,可以设置很多个大小选项