android的多分辨率多设备适配
2014-01-13 00:36
357 查看
贴得较多的一篇:
http://blog.csdn.net/jiangxinyu/article/details/8598046
为了省去弯路,我们反编译了QQ,飞信,58,赶集,飞机票,墨迹天气等所有主流的Android布局和美以下是个人终极解决:
以下是各种摘抄:
dp适配到具体设备的像素的时候,是通过如下公式换算:px = dp * scale;scale由设备的由设备的设备的pixel密度决定:LDPI的dpi在120左右,scale = 0.75 //一般市面上是看不到LDPI的设备了。MDPI的dpi在160左右,scale = 1.0HDPI的dpi在240左右,scale = 1.5XHDPI的dpi在320左右,scale = 2.0XXHDPI的dpi在440左右,scale = 3.0所以,实际使用中,1dp约等于1/160inch,所以,可以让我们的app在大多数的屏幕上保持相近的呈现效果。
对dpi属性来说,查找的顺序为,高dpi的资源优先。例如,没能找到hdpi的图片资源,则系统的搜索顺序是drawable-xhdpi->drawable-xxhdpi->drawable-mdip->drawable->drawable->drawable-ldpi。这里drawable被认为比drawable-ldpi更接近hdpi。
另外,对于图片资源在找到相近的资源后,系统还需要对图片进行缩放才会进行使用(否则,可能出现显示不下,或者图片过小的问题)。上文的例子中,如果在drawable-xhdpi中找到了资源,那么找到的图片会先缩小到0.75倍以后再使用;如果是在drawable-mdpi中找到了资源,那么图片需要放大到1.5倍以后再使用(放大肯定会造成图片模糊,可能这就是高dpi资源优先的原因所在)。
一套高密度的UI必须,会自动去适应低密度设备设计多套图标,需要有更大分辨率的图标• 使用不同的字体,需要更大的字体来适配大设备分辨率的屏幕• 增加行间距• 自适应放大内容中的图片• Tab页签 需要根据屏幕的大小来确认每屏最多显示的数目。• 考虑一些复杂界面,增大界面中的一些元素的分辨率,会导致许多东西需要重新设计。这种情况需要重新设计该界面。2) 向下适配在向更小的屏幕适配,这种情况较少,那会集中在如下几点:• 考虑一些极限点的改进,需要适配到小屏幕的手机中,如标题的最大字数等。• title、bottom栏与小屏幕宽度适配。• 考虑到行高(行信息展示)的设计是否适合更小的屏幕高度。• 在结构上,需要考虑在小屏幕中,显示是否合适。• 根据屏幕密度的比例来设计屏幕元素,需要更小分辨率的屏幕元素• 使用小的字体,具体的大小需要根据屏幕的大小来设定。
以下是个人的一点总结:I. 使用简洁的风格来设计UI,让界面变得简单并且一体化,使UI有更加的自适应能力。II. 尽量使用match_parent,wrap_content等属性来实现实现UI的自适应,减少dp的使用,尽量不要使用px。III. 如果使用dp,那么不要在layout文件中显示的设定数值,而是通过dimens文件来引用,不同设备上就可以使用同一份layout,而通过不同的dimens来适配。IV. 可以的情况下,尽量使用.9的png文件,通过无损的缩放来适应UI。V. 有些在XML上很难设定的UI细节,可能可以通过java代码动态调整的方案来解决。VI. 如果有需要的话,可以通过w720dp,h360dp,1024x768等属性来对市面上销量比较好的手机做针对性的UI适配。VII. 没有真机的情况下,可以通过SDK内的模拟器和网上的在线模拟器检查UI效果。VIII.对于某些app,可以使用Html5来开发UI(即以app内嵌WebView控件来展示Html5),可能可以获得更加的UI适应效果。
有时候,我们的图片资源不一定是从drawable文件夹中读取的,还有可能是从sd卡上读取的,或者从网络上下载的。这个时候,我们需要注意,默认情况下,通过BitmapFactory.decodeFile()函数生成的图片被认为是MDPI的,如果想让图片也获得与drawable文件夹相似的缩放能力,则需要通过BitmapFactory.Option.inDensity属性设置(例如如果图片是为hdpi准备的,则设置为240)。相关网上模拟测试与适配:TestIn2 市占率比较高的手机 这些数据可以在 http://screensiz.es/ 获得:
手机型号 | 物理尺寸(inch) | 分辨率(px) | dpi | px密度 |
GalaxySIII | 4.8 | 720*1080 | 360 | XHDPI |
SonyXperia Z | 5 | 1080*1920 | 441 | XXHDPI |
GalaxySIII | 4.3 | 480*800 | 219 | HDPI |
GalaxyNexus | 4.6 | 720*1280 | 316 | XHDPI |
GoogleNexus 4 | 4.7 | 768*1280 | 320 | XHDPI |
GalaxySIV | 5 | 1080*1920 | 441 | XXHDPI |
GalaxyS Plus | 4 | 480*800 | 233 | HDPI |
GalaxyNote II | 5.5 | 720*1280 | 267 | XHDPI |
GalaxyS | 4 | 480*800 | 233 | MDPI |
GalaxyNote | 5.3 | 800*1280 | 285 | XHDPI |
分辨率(水平数×垂直数) 类型 比例88×72 QQCIF 11:9128×96 SUB-QCIF 4:3128×128 知道的补上 1:1160×120 QQVGA 4:3176×144 QCIF 11:9208×176 Sub-QVGA- 13:11220×176 Sub-QVGA 5:4240×176 Sub-QVGA+ 15:11320×200 CGA 16:10320×240 QVGA 4:3352×288 CIF 11:9640×360 nHD 4:3400×240 WQVGA 5:3400×320 WQVGA 5:4480×240 WQVGA 2:1480×272 WQVGA 16:9480×320 HQVGA 3:2640×480 VGA 4:3640×350 EGA 64:35720×480 VGA+ 3:2768×576 PAL 800×480 WVGA 5:3854×480 FWVGA 16:9800×600 SVGA 4:3960×540 QHD 16:9960×640 DVGA 3:21024×600 WSVGA 128:751024×768 XGA 4:31280×768 WXGA 15:91280×800 WXGA 16:101280×960 UxGA/XVGA 4:31280×1024 SXGA 25:161400×1050 SXGA+ 4:31440×900 WXGA+ 16:101600×1024 WSXGA 25:161600×1050 WSXGA 32:211600×1200 USVGA/UXGA/UGA 4:31680×1050 WSXGA+ 16:101900×1200 UXGA 19:121920×1080 WSUVGA+(WSUGA/HDTV) 4:31920×1200 WUXGA 16:102048×1536 SUVGA(QXGA) 4:32560×1600 UWXGA 16:102560×2048 USXGA 5:43200×2400 QUXGA 4:33840×2400 WQUXGA 16:10
参考:
http://www.tuicool.com/articles/Ev6nMb
http://my.oschina.net/wangjunhe/blog/98739
http://www.alibuybuy.com/posts/75889.html
相关文章推荐
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- android如何适配不同分辨率的设备
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android开发-01-不同分辨率的设备文字大小适配
- 【Android】用Studio完成多设备多分辨率的适配
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- webview开发-适配多分辨率的Android设备
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 关于android引导页面的多分辨率适配问题(转载)
- Android分辨率适配
- android 不同分辨率简单适配
- android 设备获取屏幕分辨率
- android 图片自适应,完美适配各分辨率手机
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- android适配不同分辨率的手机