应对繁多的分辨率和尺寸。

图片的话,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

更多相关文章

  1. Android新手入门2016(3)--Android真机调试
  2. Android实现仿淘宝购物车增加和减少商品数量功能demo示例
  3. android无需Root手机,使用Android(安卓)Studio无源码动态调试教程
  4. Android(安卓)UI学习 - FrameLayou和布局优化
  5. 从魅族腰圆键看国产手机厂商的创新能力
  6. Android(安卓)Studio插件-自动根据布局生成Activity等代码(插件
  7. android studio 页面适配问题解决方案
  8. 目前 Android平板所面临的几个问题
  9. 简谈WP,IOS,Android智能手机OS

随机推荐

  1. SQL Server重置IDENTITY属性种子值操作
  2. 在SQLserver数据库之间进行传表和传数据
  3. 解析SQL Server中datetimeset转换datetim
  4. SQL判断是否"存在",还在用 count 操作?很
  5. sql server把退款总金额拆分到尽量少的多
  6. SQLServer设置客户端使用IP地址登录的图
  7. 浅析SQL Server授予了CREATE TABLE权限但
  8. SQL server分页的4种方法示例(很全面)
  9. SQL Server 批量插入数据的完美解决方案
  10. group by 按某一时间段分组统计并查询(推