Android Developers:支持不同的屏幕密度

这节课程向你展示如何通过提供不同的资源和使用与分辨率无关的测量单位,支持不同屏幕密度 

 

使用密度无关的像素 

——————————————————————————————————————————————————————————————

当设计你的布局的时候,你必须避免的一个常见的缺陷是使用绝对像素来定义距离和尺寸。用像素定义你的布局的尺寸是一个问题,因为不同的屏幕有不同的像素密度,所以同样的像素可能在不同的设备上,对应不同的物理尺寸。因此,当指定尺寸的时候,总是使用dp或者sp单位。1dp是一个密度独立的像素,它对应的物理大小是在160dpi中的1像素。1sp是相同的基本单位,但是它以用户首选的文本大小缩放(它是比例独立的像素),所以你在定义文本大小的时候使用这个测量单位(但是不用于布局大小)。 

 

例如,当你指定两个视图之前的空间的时候,使用dp而不是px 

<Button android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    android:text="@string/clickme" 
    android:layout_marginTop="20dp" />  

当指定文本大小的时候,总是使用sp 

<TextView android:layout_width="match_parent"  
    android:layout_height="wrap_content"  
    android:textSize="20sp" /> 

 

提供可选的位图 

——————————————————————————————————————————————————————————————

由于Android运行在具有广泛屏幕密度的设备上,你应该总是根据每个广义的密度度量定制你的位图资源:low,medium,high和extra-high密度。 

 

为了产生这些图像,你应该从你矢量格式的原始资源开始,然后使用下面的大小缩放产生每个密度的图片 

  • xhdpi:2.0 

  • hdpi:1.5 

  • mdpi:1(基准) 

  • ldpi:0.75 

 

这意味着如果你为xhdpi设备生成一个200*200的图片。你应该为hdpi生成150*150同样的资源,为mdpi 100*100和最后为ldpi设备75*75的图片。 

 

然后,将这些生成的图片放置的res/目录下对应的子目录中。你的应用程序在运行的时候,系统会基于设备屏幕的密度,自动选择正确的图片 

MyProject/ 

res/ 

drawable-xhdpi/ 

awesomeimage.png 

drawable-hdpi/ 

awesomeimage.png 

drawable-mdpi/ 

awesomeimage.png 

drawable-ldpi/ 

awesomeimage.png 

 

然后,你在任何使用引用@drawable/awesomeimage,系统基于屏幕的dpi选择合适的位图 

 

更多关于为你的应用创建图标资源的提示和指导,查看Icon Design Guidelines。


新技术,新未来!欢迎大家关注 “1024工场”微信服务号 ,时刻关注我们的最新的技术讯息! (甭客气!尽情的扫描或者长按!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值