使用分辨率适配
分辨率匹配规则如下:
适配:layout-widthxheight, 例如:layout-1920x1080
适配:values-widthxheight, 例如:values-1920x1080
适配:drawable-widthxheight, 例如:drawable-1920x1080
坑*:
使用 layout-1920x1080,values-1920x1080,drawable-1920x1080, 不起作用。。。
心想有个导航栏也占用了高度,但是安卓不会这么智障吧,减去导航栏这个分辨率就很难看了。然而事实是,确实就是这么智障。
最终版本:
适配:layout-widthxheight, 例如:layout-1920x1017
适配:values-widthxheight, 例如:values-1920x1017
适配:drawable-widthxheight, 例如:drawable-1920x1017
使用屏幕尺寸适配
像素密度一样的时候,dp的作用就微乎其微了,这个时候dp值应该按比例变大。
布局匹配规则如下:
适配:layout-small (屏幕尺寸小于3英寸左右的布局)
适配:layout-normal (屏幕尺寸小于4.5英寸左右)
适配:layout-large (屏幕4英寸-7英寸之间)
适配:layout-xlarge (屏幕7-10英寸之间)
适配:values-small (屏幕尺寸小于3英寸左右的布局)
适配:values-normal (屏幕尺寸小于4.5英寸左右)
适配:values-large (屏幕4英寸-7英寸之间)
适配:values-xlarge (屏幕7-10英寸之间)
drawable 同上
使用像素密度适配
dpi是dot per inch,每英寸多少点,ppi是 Pixel per inch,每英寸像素数,针对显示器的设计时,dpi=ppi。
通过代码获取设备像素密度dpi:
// getResources().getDisplayMetrics().densityDpi;
context.getResources().getDisplayMetrics().densityDpi;
手动计算规则:
分辨率参数:1280x800分辨率
物理尺寸参数:屏幕对角线长25.6厘米-10英寸 屏幕宽度21.6厘米-8.5英寸 屏幕高度13.7厘米-5.4英寸
像素密度 = 开根号(宽像素平方+高像素平方)/对角线长
dpi = sqrt(1280^2 + 800^2) / 10 = 150
150 == mdpi
匹配规则如下:
layout-ldpi (0~120)
layout-mdpi (120~160)
layout-hdpi (160~240)
laytout-xhdpi (240~320)
layout-xxhdpi (320~480)
layout-xxxhdpi (480~640)