这节课程向你展示如何通过提供不同的资源和使用与分辨率无关的测量单位,支持不同屏幕密度。
——————————————————————————————————————————————————————————————
当设计你的布局的时候,你必须避免的一个常见的缺陷是使用绝对像素来定义距离和尺寸。用像素定义你的布局的尺寸是一个问题,因为不同的屏幕有不同的像素密度,所以同样的像素可能在不同的设备上,对应不同的物理尺寸。因此,当指定尺寸的时候,总是使用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" />
<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/目录下对应的子目录中。你的应用程序在运行的时候,系统会基于设备屏幕的密度,自动选择正确的图片:
然后,你在任何使用引用@drawable/awesomeimage,系统基于屏幕的dpi选择合适的位图。
更多关于为你的应用创建图标资源的提示和指导,查看IconDesign
Guidelines。
分享到:
相关推荐
Android Cookbook: Problems and Solutions for Android Developers by Ian F. Darwin English | 10 May 2017 | ASIN: B071VLZ9ZK | 838 Pages | AZW3 | 12 MB Jump in and build working Android apps with the ...
Manning RxJava for Android Developers Manning RxJava for Android Developers
Kotlin for android developers 中文学习文档 https://leanpub.com/kotlin-for-android-developers 英文版 - Github: https://github.com/wangjiegulu/kotlin-for-android-developers-zh
Kotlin for android developers中文版翻译 Kotlin for android developers中文版翻译
kotlin for android developers 中文版, kotlin for android developers 中文版
Linux for Developers: Jumpstart Your Linux Programming Skills (Developer's Library) by William "Bo" Rothwell English | 17 Apr. 2017 | ASIN: B06ZY85CPJ | 224 Pages | AZW3 | 5.37 MB Linux for ...
Wiley - Java Programming for Android Developers - For Dummies 2nd - 2017
《Kotlin for android developers中文版翻译》
本书介绍Scala基本语法、构造。以及如何将您已经知道的复制java语法转换为Scala,了解Scala除了javabecome之外还提供了哪些功能编程概念和惯用技巧和建议,这些技巧和建议在将现有java项目转换为Scala时非常有用
CalendarProvider是用于用户的日历事务的仓库。CalendarProviderAPI允许你在日历,事务,参与者,提醒等,执行查询,插入,更新,和删除操作。...为了更简单的执行共同的操作,CalendarProvider支持一系列的
kotlin-for-android-developers-zh 中文版本,请支持正版。 https://leanpub.com/kotlin-for-android-developers
Kotlin-for-Android-Developers:该书的配套应用
Kotlin for android developers(非扫描中文)下载后解压即可,更多请关注我的博客:xiayye5
Kotlin for Android Developers 中文版 ---------------------------------------------------- 本 ePub 基于开源文档,目录书签齐全。 版权归原作者,翻译版权归译者。 ------------------------------------------...
kotlin-for-android-developers; kotlin-for-android-developers; kotlin-for-android-developers;
Kotlin for Android Developers - Learn Kotlin the easy way.pdf
知道它们的不同之处,并且知道哪部分语言特性可以让你提高你的工作效率。 这本书并不是一本语言参考书,但它是一个Android开发者去学习Kotlin并且使用在 自己项目中的一个工具。我会通过使用一些语言特性和有趣的...
Java Programming for Android Developers For Dummies(2nd) 英文mobi 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除