Android 支持不同的屏幕 Supporting Different Screens
来源:互联网 发布:简述数控车床编程步骤 编辑:程序博客网 时间:2024/05/29 06:41
Supporting Different Screens
THIS LESSON TEACHES YOU TO
- Create Different Layouts
- Create Different Bitmaps
YOU SHOULD ALSO READ
- Designing for Multiple Screens
- Supporting Multiple Screens
- Iconography design guide
android设备的屏幕在尺寸和像素密度方面不同,你的应用会在不同的尺寸或者像素密度的android设备上运行,因此,应该添加一些替代的资源,以便你的应用在不同尺寸和像素密度的设备上都有优良的界面。
- 一般有四种尺寸: small, normal, large, xlarge
- 四种密度: low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
为不同屏幕申明的不同的布局文件和图片,应当分别放在不同的目录中,就如同不同语言的字符串的做法一样。
另外,还应该注意屏幕的方向(横屏、竖屏)也要考虑在内,因此许多应用应该修改布局文件以便在不同的屏幕方向上都有良好的用户体验。
创建不同的布局文件
为了保证你的应用在不同屏幕尺寸上表现良好,你应该为每一个屏幕尺寸设计布局,每个布局文件保存在适当的资源目录下,以-<screen_size>
做后缀。例如:为large 屏幕设计的布局文件保存在res/layout-large/
下。
Note: android可以自动的缩放布局以完全适应你的屏幕,因此,为不同屏幕设计布局文件不需要考虑绝对的UI元素的尺寸,而应该关注影响用户体验的布局结构,例如重要view的大小和它的位置。
例如,这个工程包括一个默认的布局文件和large屏幕的替代布局文件:
MyProject/ res/ layout/ main.xml layout-large/ main.xml
这些文件的名字必须完全相同,但是内容不必。为了为不同尺寸的屏幕提供合适的UI。
像一般情况一样,在你的app中简单的使用布局文件名
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);}
系统根据设备的尺寸选择使用合适目录下的布局文件。更多有关系统如何选择正确的资源请参见 Providing Resources guide.
另一个例子,这个工程为横屏提供了一个布局
MyProject/ res/ layout/ main.xml layout-land/ main.xml
默认的,布局文件 layout/main.xml
用于竖屏。
如果你想要为一个large屏幕提供竖屏的布局文件,那么这个布局文件需要large和land两个修饰词:
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
Note: Android3.2以及之后的版本,提供了一个定义屏幕尺寸的先进的函数,使用独立于密度的像素为UI设置最小的宽和高,实现为不同尺寸的屏幕指定资源。
这一节不涉及这个新的技术,更多信息参见 Designing for Multiple Screens.
创建不同的位图
应当为不同密度的屏幕提供缩放合适的位图资源: low, medium, high 和extra-high 密度. 这样可以让你的应用在不同密度的屏幕上都有良好的图形质量和性能。
创建这些图片,你应当首先创建矢量格式的原始图片资源,然后使用以下参数缩放,为每个密度的屏幕创建图片。
- xhdpi: 2.0
- hdpi: 1.5
- mdpi: 1.0 (baseline)
- ldpi: 0.75
这就意味这如果你为xhdpi设备创建了一个200x200的图片,就应当为hdpi创建150x150的图片,为mdpi创建100 x100的图片,为ldpi的设备创建75x75 的图片,
然后,将这些图片文件保存在合适的drawable资源目录下:
MyProject/ res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-ldpi/ awesomeimage.png
当你使用 @drawable/awesomeimage
时,系统根据屏幕的密度选择合适的图片。
Note: ldpi的资源并不是必需的。如果提供了hdpi的资源,系统会将hdpi的资源缩小一半以匹配ldpi的屏幕。
更多参见 Iconography design guide.
http://developer.android.com/training/multiscreen/screensizes.html
- Android 支持不同的屏幕 Supporting Different Screens
- 支持不同屏幕(Supporting Different Screens)
- 支持不同屏幕——Supporting Different Screens
- 安卓初学-让APP支持不同的屏幕(Supporting Different Screens)
- Supporting Different Screen Sizes支持不同的屏幕尺寸
- Supporting Different Screen Sizes //支持不同尺寸的屏幕
- 【官方】Android提供的支持不同屏幕大小的全部方法(Supporting Different Screen Sizes)
- android training Supporting Different Screens
- Android:支持不同的版本(Supporting Different Platform Versions)
- Supporting Multiple Screens(支持Android各种屏幕尺寸)
- 如何让自己开发的android支持多种不同的手机屏幕(supporting Multiple Screens)
- 支持不同屏幕尺寸——Supporting Different Screen Sizes
- 支持不同屏幕密度——Supporting Different Densities
- android-Supporting Different Screens in Web Apps
- Supporting Different Screens
- Supporting Different Screens
- Supporting Different Screens
- dp-Supporting Different Screens
- hdu1874 畅通工程续 单源最短路径 模板题
- 如何在iis6上部署mvc3网站
- hdu3342 Legal or Not 拓扑排序
- c语言两简单的函数------字符输入输出------【getchar、putchar(parm)】
- hdu2094 产生冠军 拓扑排序
- Android 支持不同的屏幕 Supporting Different Screens
- Android 之Activity , Window和View的关系及一些细节
- hdu1285确定比赛名次 拓扑排序之1285普通方法
- hdu1258 确定比赛名次 邻接表法拓扑排序
- LIST
- hdu1811 链表的最重要 非常很好的模板式链表拓扑排序
- 0727
- hdu1879继续畅通工程 最小生成树prim算法
- hdu1102 很好的最小生成树克鲁斯卡尔算法