您的位置:首页 > 移动开发 > Android开发

android屏幕适配

2015-09-07 22:45 288 查看
哈哈

,今天准备开始写博客啦,当然内容不是全部原创的,自己的积淀也不够,算是归纳总结吧!自己一路走来,自学android,都是通过网上查资料学习,

也感谢前辈们留下的财富,我也算是站在巨人的肩膀上了。不过学习的过程总是零碎,自己分享一下自己的总结,给需要的人看看吧。

1.为什么屏幕适配?

说起屏幕适配,不得不是android程序员的痛啊(

,至少我是。。),之前看过一个统计说当前的安卓设备超过2万种(感觉这个数量太大,好有负担),

不同分辨率,不同尺寸,为了自己的app能够给大多数机子带来良好的用户体验,所以妥妥的需要屏幕适配啊。

2.重要概念(不细说了,自己百度了,抛砖引玉)

a.屏幕尺寸:屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米

b.屏幕分辨率:指在横纵向上的像素点数,单位是px,1px=1个像素点,一般以纵向像素*横向像素,如1920*1080(构成图像的最小单位)

c.屏幕像素密度:每英寸上的像素点数,单位是dpi,即"dot per inch"的缩写

计算方法:初中数学勾股定理。。求得对角线像素再除以尺寸

d.dp、dip (Density Independent Pixels),密度独立于像素(意思就是和密度无关)。以160dpi,1dip=1px

480*320 160dpi        320dp=320px

800*480 240dpi      1dp=1.5px        320dp=320*1.5=480px

e.sp可以根据文字大小首选项进行放缩,推荐12sp以上,12sp,14sp,18sp,22sp作为首选大小

像素密度的区分

名称         像素密度范围

mdpi         120dpi-160dpi

hdpi     160dpi-240dpi

xhdpi        240dpi-320dpi

xxhdpi       320dpi-480dpi

xxxhdpi      480dpi-640dpi

3.解决方案

a.支持各种屏幕尺寸

         使用wrap_content,match_parent,weight  

         禁用绝对布局

        使用限定符

        使用自动拉伸位图

1)界面布局方面      

根据物理尺寸的大小准备5套布局: 

(Android 3.2之前)      

layout(放一些通用布局xml文件,比如界面顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),    

layout-small(屏幕尺寸小于3英寸左右的布局)

layout-normal(屏幕尺寸小于4.5英寸左右)

layout-large(4英寸-7英寸之间)

layout-xlarge(7-10英寸之间)  

(Android 3.2之后)

1.320,针对以下屏幕配置的设备:

240x320ldpi(QVGA手持设备)

320x480mdpi(手持设备)

480x800hdpi(高分辨率手持设备)

2.480,针对480x800mdpi的屏幕(平板或手持设备)

3.600,针对600x1024mdip的屏幕(7英寸平板)

4.720,针对720x1280mdip的屏幕(10英寸平板)

2)图片资源方面     

需要根据dpi值准备5套图片资源:

drawable:主要放置xml配置文件或者对分辨率要求较低的图片    

drawalbe-ldpi:低分辨率的图片,如QVGA (240x320)   

drawable-mdpi:中等分辨率的图片,如HVGA (320x480)

drawable-hdpi:高分辨率的图片,如WVGA (480x800),FWVGA (480x854)

drawable-xhdpi:至少960dp x 720dp

android从1.6和更高,Google为了方便开发者对于各种分辨率机型的移植而增加了自动适配的功能

在AndroidManifest.xm添加如下配置:

 <supports-screens 

android:largeScreens="true" 

android:normalScreens="true"

android:smallScreens="true"

android:anyDensity="true"/>

我想碎觉了,明天再写了,没写完。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息