android WebView以及模拟器大小的相关设置

一、关于WebView适用屏幕的开发过程

由于刚学习android不久,手头上的一个BI相关项目也比较简单。大体是上班是导航按钮,用android实现,下面是一个WebView,用来加载一些html图表。开始项目进展的挺顺利的,但到后来在几个屏幕打下不同的平板上做测试时,WebView遇到了屏幕适用性的问题。

1、首先,在开发时用的是三星的七寸平板,由于里面html中一些表的影响,需要传一个html页面的高度进去,不能写百分比去自动适用,所以在java代码里面就先去算WebView所占的高度,因为我上面导航部分和logo部分是固定高度,大概130dip,根据网上的一些资料用以下代码计算:

	DisplayMetrics displaymetrics = new DisplayMetrics();  
		displaymetrics = getResources().getDisplayMetrics();
		final float scale =getResources().getDisplayMetrics().density;
		int topHeight=(int)(140 * scale + 0.5f);//多次调整发现多10比较合适
		height = (int)((displaymetrics.heightPixels-topHeight));
在将这个height传入html,发现这样设置后适用7寸平板比较合适,但8寸、10寸的就不能适用了,会出现滚动条或者很短。

2、在多次尝试后,发现越大的屏幕,计算出的高度超出的越多,就尝试着将最后的高度再除以scale值,结果还真差不多了,

height = (int)((displaymetrics.heightPixels-topHeight)/scale);
这样
看,传进html里面的高度也需要转换成dip的值。但这样设置后,个别的html页面仍然有点点误差,可能还里面的布局有关系。

3、最后,老大要求WebView中的图表可以缩放,所以就去设置WebView缩放相关的参数。如下设置(红色字体):

WebView myWebView = new WebView(getActivity());
		WebSettings webSettings = myWebView.getSettings();
		webSettings.setJavaScriptEnabled(true);
		// can read the json file on local
		webSettings.setAllowUniversalAccessFromFileURLs(true);
		webSettings.setDefaultTextEncodingName("utf-8");

			webSettings.setSupportZoom(true);
			webSettings.setBuiltInZoomControls(true);
			webSettings.setLoadWithOverviewMode(true);
			
			webSettings.setUseWideViewPort(true);
			webSettings.setDefaultZoom(ZoomDensity.CLOSE);
			
这样设置后可以缩放了,而且没想到的是,经过上两步骤设置html高度遗留的误差问题也没有了,基本可以完整的适用了。


但是,到目前为止,还有一个问题遗留,详细如下:

当缩放语句中有

webSettings.setUseWideViewPort(true);

时,7寸、八寸三星平板以及模拟器都是可以的,但在10寸的模拟器上面测试时,如果有此语句会出现滚动条,但能正常缩放,给人初始化页面时放大了的感觉。

如果去掉此语句(webSettings.setUseWideViewPort(true);),则七寸、八寸平板出现滚动条且不能缩放,但10寸平板很正常且能缩放。

对于这个问题不知是不是漏了一个什么参数没有设置,如果那位高手看到了麻烦回复告诉我一下,在此先谢谢了。


二、关于模拟器大小的设置

在用模拟器测试应用程序时,总感觉同意尺寸的模拟器和真机大小差别很大,而且有时运行效果也有很大差别,尤其像我这次有webview的项目感觉特别明显,最后发现在启动模拟器时有参数可以设置。

我以前在模拟器运行app时总是运行时右击运行android application,然后选择一个模拟器,让应用和默认模拟器同时启动。现在才发现最好是先在模拟器管理器里面先启动,然后运行应用时弹出、然后选择已启动的设备,因为这样可以设置一些参数。如下:

首先在设备里启动需要启动的模拟器:


然后设置模拟器和电脑尺寸:


点击“Launch"后启动模拟器。


在运行app前记得如下图勾选


这样启动运行的模拟器就和真实设备是一样的了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值