理解概念:
1.dpi(dot per inch), 每英寸像素,android设备于开始分为四种 120(low),160(medium),240(high),320(xhigh)相对应res目录下的/drawable-ldpi ,drawable-mdpi,
drawable-hdpi,drawable-xhdpi。随着市场上android设备越来越多,google又增加213,480,640,三种dpi。比如320*240分辨率的屏幕物理尺度2 inch*1.5 inch,其dpi=160;
2.dp或dip 逻辑密度计算单位,于像素的换算方式px=dp*(dpi/160)。
3.得到相应的设备数据
<span style="white-space:pre"> </span> DisplayMetrics dm = new DisplayMetrics();// 新建dm对象以获取设备参数
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);//将参数传入dm引用对象变量
screenWidth = dm.widthPixels;//获得屏幕宽度 (px)
screenHeight = dm.heightPixels;//获得屏幕高度(px)
densityDpi = dm.densityDpi;//获得屏幕密度(dpi)
scale = dm.density;//获得缩放系数 dpi/160
fontScale = dm.scaledDensity;//文字缩放系数 同scale
1,图片适配
- 关于切图建议:第一,长宽最好为3的倍数(理论根据:android推荐的logo图标大小48mdpi,72hdpi,96xhdpi得出的最小公约数);第二,长宽最好是偶数(奇数在进行等比压缩的时候可能会出现问题);第三,根据以上两点,长宽是6的倍数最理想;第四,如果可以拉伸而不改变设计意图的情况,建议使用纯色背景,或者利用android推荐的9path工具制作.9图片。
- 图标的适配: 在切好图的基础上,根据屏幕密度,像素和实际大小的比例关系,制作对应的密度的图片。例如480*800分辨率图片为20*20,在720*1280分辨率下图片为30*30,在1080*1800屏幕密度下图片为40*40。
- 图标的目录,480*800对应drawable-hdpi,将2:3比例的图片放入drawable_xhdpi目录下,将放大2倍的图片放入drawable-xxhdpi目录下。
android3.0之前,适配指定分辨率,将layout文件夹作为如下命名 layout layout-1024x768 layout-1024x600 layout-1280x768 ;
android3.0以后,
需将高度减去48像素,即底部状态栏的高度:layout
layout-1024x720 layout-1024x552 layout-1280x720
注意事项:(1)layout这个文件夹及资源一定要存在的;
(2)layout-1024x768中的x不是乘法,而是字符“x”;
(3)layout-1024x768中高度要放在前面,反正编译不通过。
(4)横屏布局需这样定义文件夹
layout-land-1024x720 //1024x768横屏