Android(安卓)的不同尺寸图片和布局(手机)
应对繁多的分辨率和尺寸。
图片的话,Android 是用 dpi 作为单位,你随便选择一个图片,在Win下面右键就会看到以dpi为单位的属性,dpi越高图片也就越精细。对于手机或显示设备来说,一个像素就是一个点,所以dpi=ppi,反过来,经常说的手机屏幕ppi高低数字等同于写程序时候考虑的dpi数值。
iPhone4的视网膜屏幕是326ppi,属于ldpi mdpi hdpi xhdpi的最后xhdpi(大约320ppi),后来的Android手机大抵也都这个数值,往上也没什么意义,反正你眼睛看不出来,处于能省尽量省的原则,图片都用xhdpi算了,低ppi的手机自个儿系统处理的了。
然后是布局,布局 4寸左右是normal,4寸到7寸是large(这些都是估算而已)。根据公式px = dp * (dpi / 160)
和原则上
- largescreens are at least 640dp x 480dp
- normalscreens are at least 470dp x 320dp
你计算下,normal的分辨率起码是宽 2*dpi,4.65寸,720p分辨率的galaxy nexus是315ppi,宽应该为起码 630,而720p的宽 720 正好符合。
再计算下 large,宽为3*dpi,连galaxy nexus都达不到要求。能达到要求的基本都是7寸+的平板。
所以手机来说,同一种高宽比的话你只要写normal的布局。
加上之前文章说的,分辨率有未来主流的16:9和当下主流的15:9 两种。
手机布局应该写2个,但是当下貌似没有办法(除非代码里判断)根据高宽比选择特定布局。
当然与其说是布局,还不如说是布局里面的图片的选择,用同一个图片资源,在2个不同的高宽比屏幕上有一定的差异,所以只能用到.9.png来处理。
Android 3 和 4 引入的新布局机制,比如sw600dp,是给平板用的,跟手机木有关系。
结论就是:
res/layout/my_layout.xml
res/drawable-xhdpi/my_icon.png
16:9和15:9用.9.png来处理
Google 本意是想一个apk同时跑在手机和平板上,方便共用代码,但是我感觉明显同样的程序手机和平板的功能肯定会有不同的,大屏幕的可能性要比小屏幕大吧,而且各种界面布局+代码都有,放一个项目里反而感觉乱,还不如 iOS 那种平板的应用出个专门的 HD 版本。这种混合的策略很容易导致手机版本被装上平板,然后就碰到了难看变形的界面(我知道是可以声明针对特定屏幕,但是人家不一定会设置的,其中又牵扯到 Screen Compatibility Mode),这样的体验很糟糕的。
参考:http://developer.android.com/guide/practices/screens_support.html
更多相关文章
- Android新手入门2016(3)--Android真机调试
- Android实现仿淘宝购物车增加和减少商品数量功能demo示例
- android无需Root手机,使用Android(安卓)Studio无源码动态调试教程
- Android(安卓)UI学习 - FrameLayou和布局优化
- 从魅族腰圆键看国产手机厂商的创新能力
- Android(安卓)Studio插件-自动根据布局生成Activity等代码(插件
- android studio 页面适配问题解决方案
- 目前 Android平板所面临的几个问题
- 简谈WP,IOS,Android智能手机OS