Android屏幕适配一直是android开发者的一个大问题,android手机屏幕分辨率良莠不齐,各种奇葩分辨率层出不穷,导致分辨率适配相当麻烦,今天就说说自己在开发和学习中学会的适配方面的方法概念。

一、关于布局适配建议
1、不要使用绝对布局
2、尽量使用match_parent 而不是fill_parent 。
3、能够使用权重的地方尽量使用权重(android:layout_weight)
4、如果是纯色背景,尽量使用android的shape 自定义。
5、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。比如要适配1080*1800的屏幕(魅族MX3采用此分辨率)则新建layout-1800x1080.xml的文件夹,然后在下面定义布局。Android系统会优先查找分辨率相同的布局,如果不存在则换使用默认的layout下的布局。
6、关于长宽设置最好是3的倍数,最好是偶数。
二、基本概念

px : 英文单词pixel的缩写,意为像素,屏幕上的点。我们通常所说的分辨率如480X800就是指的像素。像素是最小的独立显示单位,px均为整数,不会出现0.5px的情况。 in : 英寸,是屏幕的物理尺寸,手机屏幕大小如1.6英寸、1.9英寸、2.2英寸,都是指的对角线的长度。 dpiDots Per Inch的缩写, 每英寸点数,即每英寸包含像素个数。如320X480分辨率宽2英寸,高3英寸, 每英寸包含的像素点的数量为320/2=160dpi(横向)或480/3=160dpi(纵向),160就是这部手机的dpi density :  屏幕密度,density和dpi的关系为 density = dpi/160。 dp即dip,设备独立像素,device independent pixels的缩写。dp = density * px 。 sp : 和dp很类似,一般用来设置字体大小,和dp的区别是它可以根据用户的字体大小偏好来缩放。 四种屏幕尺寸分类::small, normal, large, and xlarge
四种密度分类:ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)(普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320
三、获取屏幕分辨率和密度的方法
第一种: DisplayMetrics metrics = new DisplayMetrics();
Display display = activity.getWindowManager().getDefaultDisplay();
display.getMetrics(metrics);
int width =metrics .widthPixels; // 屏幕宽度(像素) 
int height =metrics .heightPixels; // 屏幕高度(像素) 
float density =metrics .density; // 屏幕密度(0.75 / 1.0 / 1.5) 
int densityDpi =metrics .densityDpi; // 屏幕密度DPI(120 / 160 / 240)  第二种: Display mDisplay = getWindowManager().getDefaultDisplay(); int W = mDisplay.getWidth(); int H = mDisplay.getHeight();
四、其它说明
1、在xhdpi里面放一张120px*120px的图片,图片使用wrap_content设置长宽与设置长宽为60dp效果一样。只提供一套图片时,目前xhdpi是最好的选择,主分辨率是720P。
2、切图方面: 1  长宽最好是3的倍数(根据android的推荐logo图标的大小是48(mdpi),72(hdpi),96(xhdpi)得出的最小公约数)。 2  长宽最好是偶数。因为奇数在进行等比压缩的时候可能有问题。 3  根据上面两条,如果长宽是6的倍数最理想。 4  如果可以拉伸而不改变设计意图的情况下,比如纯色背景,则使用android的9path工具制作成.9的图片。
3、 屏幕密度、像素和实际大小的比例关系。他们的关系是2:3,于是你需要按照1.5倍比例制作图标,比如你在480*800的设计稿上切下来一个20*20像素的图,那么你就需要制作一个等比放大成30*30像素的图标,这样同一个图标在480*800的屏幕和720*1280的屏幕上显示的实际大小才一样。同理,如果你需要适配xxhdpi则需要在20*20的基础上制作一个等比放大成40*40像素的图标。
4、 关于图标的目录,480*800切下来的图我们放在drawable-hdpi目录下,按照2:3放大的图标放在drawable-xhdpi目录下,按照2倍放大的图标放在drawable-xxhdpi目录下。 android会根据手机的密度优先查找对应的目录的资源, 如果没有这个文件夹,则查找与其最接近的对应密度文件夹。
5、demins的使用。demins在value文件夹下,相关配置可以在values-hpdi,values-mdpi,values-ldpi三种文件夹中的dimens.xml文件进行设置。

更多相关文章

  1. 一看就懂的Android(安卓)APP开发入门教程
  2. android自动屏幕旋转流程分析
  3. Android(安卓)自适应屏幕方向和大小
  4. 使用android快速开发框架afinal的FinalDb操作android sqlite数据
  5. Android(安卓)锁定屏幕 不可解锁
  6. VisionMobile:生态环境的游戏:破坏Android的盛会
  7. Android(安卓)屏幕分辩率相关问题
  8. Android(安卓)推送通知指南
  9. Android设置一个按钮右对齐

随机推荐

  1. Android中SimpleAdapter,ArrayAdapter和Ba
  2. Android(安卓)OOM以及GC的一些建议
  3. android activity的4种启动模式
  4. android触摸屏事件手势操作滑动处理
  5. Android(安卓)Studio打包时如何将版本号
  6. Android--隐藏状态栏图标
  7. LinearLayout中的控件两端对齐
  8. Android(安卓)8.0 Oreo 画中画模式
  9. 解决Could not execute method of the ac
  10. android屏幕颜色过滤调节(可用于护眼模式)