android training Supporting Different Screens

Supporting Different Screens

原文地址 点击打开链接

android设备屏幕用两个通用的属性:大小和密度。为不同大小和密度的屏幕优化你的app。


一般的大小:small, normal, large, xlarge
一般的密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)


你应该把不同的layouts和bitmaps放入对应的目录中。


注意:屏幕方向也是屏幕大小变化的一种


Create Different Layouts



你可以为不同屏幕大小的设备用多套布局来适配。如:一个large的屏幕,为这个屏幕优化的布局xml


可以放到res/layout-large/下。不同大小的屏幕,目录命名为screen_size。


android根据这些会适应屏幕布局,你要关注的是你写的布局中视图的大小和位置


例子:
MyProject/
    res/
        layout/
            main.xml
        layout-large/
            main.xml


文件名必须相同


@Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
}


app运行时会根据屏幕大小来加载合适的目录下的xml文件


例子:
MyProject/
    res/
        layout/
            main.xml
        layout-land/
            main.xml


默认,layout/main.xml文件用来在竖屏中显示,目录没加条件的都是默认。
如果你想为横屏、大屏提供特别的layout,你可以:
MyProject/
    res/
        layout/              # default (portrait)
            main.xml
        layout-land/         # landscape
            main.xml
        layout-large/        # large (portrait)
            main.xml
        layout-large-land/   # large landscape
            main.xml




安卓3.2及以上支持定义屏幕尺寸的先进方法,允许您指定参考资料屏幕尺寸基于最低密度独立像素的


宽度和高度。这节课不包括这项新技术。更多的信息,阅读Designing for Multiple Screens.。


Create Different Bitmaps



你应该提供适当比例的位图资源的每个广义密度桶:低、中、高、特高的密度。


生成这些图片,你应该开始你的原始资源在每个密度矢量格式和生成图像中使用以下尺度:
xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75
这意味着如果你为xhdpi生成一个200 x200型图像设备,你应该在150 x150 hdpi生成相同的资源,为


mdpi 100 x100,75 x75 ldpi设备。
然后,将文件放到适当的目录下
MyProject/
    res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png
任何时候你引用 @drawable/awesomeimage,系统基于屏幕的密度选择合适的bitmap。


注意:低密度(ldpi)资源并不总是必要的。提供hdpi资产时,系统规模下降了一半正确适合ldpi屏幕。


更多关于创建图标的提示和指导方针,参考 Iconography design guide。













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值