天天看点

关于Android屏幕适配的问题

Android由于屏幕设备的种类多种多样,不像Ios那边只需要适配几种型号的机器即可。

对于屏幕的适配,特别是针对于既有ios、又需要有Android的移动应用开发来说,适配更是存在着问题。

在此,可以利用一种简单的解决方案来简化问题,达到pad和phone手机的简单适配的效果。

可根据

DisplayMetrics metric = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(metric);
		int width = metric.widthPixels;  // 屏幕宽度(像素)
		int height = metric.heightPixels;  // 屏幕高度(像素)
           

利用ration = width/height 

来判断是否为4:3的pad设备,还是16:9或者其他的设备(目前市场上大多数主流设备都是这样,pad趋近于4:3,而phone趋近于16:9,当然也有魅族的16:10的)

然后可以根据ration作为判断的条件进行pad和phone的适配。

既然只固定的区分为两类,那么只需要提供两套资源。这两套资源如何能够适当的展示在不同屏幕上方呢?

答案是:按比例缩放。根据提供的相应资源的大小,与所用设备的大小计算出X、Y的缩放比。ScaleX,ScaleY.计算出应该在设备上显示的资源的大小width、height,然后利用XX.LayoutParams xx = new XX .LayoutParams(width,height),进行资源的缩放。