如何创建支持不同屏幕尺寸的Android应用

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 10:59 我要评论(0)

Supporting Different Screens

Android用两种常规属性来分类设备屏幕:尺寸和像素密度。作为开发者,你应当预料到你的android应用程序将会被安装到不同屏幕尺寸和像 素密度的设备上。因此,你的应用应当包含可选的资源来优化应用外观,以便支持上述不同尺寸和像素密度的设备。

* 有四种广义的尺寸:small, normal, large, xlarge。

* 同样也有四种广义的像素密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)。

为了声明用于不同屏幕的不同layouts布局和bitmaps资源,你必须把这些可选的资源文件分别放在不同的目录,这一点类似于你在国际化时不 同语言strings的操作。

同时要注意屏幕的方向(landscape or portrait)也被认为是一种屏幕尺寸的变化,所以大多数应用都应该修改layout布局来提高用户在不同屏幕方向上的体验。

创建不同的Layout布局文件-Create Different Layouts

为了提高在不同设备屏幕上的用户体验,你应当为每一种你想要支持的屏幕尺寸创建一个独有的XML布局文件。每一布局文件应当存放到恰当的资源目录 下,该目录以屏幕尺寸-作为后缀。例如,一个用于大屏幕的布局文件应当放在res/layout-large/目录下面。

注:Android会自动缩放你的布局以便适配屏幕。这样,用于不同屏幕的布局文件就不必过多考虑UI元素的绝 对大小,相反应当关注于布局的结构,这将直接影响用户体验(比如重要view视图的大小或位置应当相对于同级view视图)。

例如,下面的项目包含了一个默认的layout和一个可选的用于大屏幕的layout目录:

MyProject/

res/

layout/

main.xml

layout-large/

main.xml

目录中的布局文件名必须保持一致,但是它们的内容可以不同,以便提供优化的UI来支持相对应的屏幕尺寸。

像往常一样在app中简单地获得layout布局文件的引用:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

Android系统将根据你的app应用所运行设备的屏幕尺寸从适当的layout目录加载布局文件。更多关于Android系统如何选择适当的资 源文件可以在 Providing Resources | 资源提供 - Providing Resources 指导中获龋

下面是另外一个案例,在这个项目中使用了可选的横向布局来支持横向屏幕:

MyProject/

res/

layout/

main.xml

layout-land/

main.xml

缺省情况下,layout/main.xml文件是垂直方向布局的。

如果你想提供一个特殊的横向布局,比如支持大屏幕,你需要同时使用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

注:*Android 3.2 及以上版本支持一种更好的方法来定义屏幕尺寸,它允许我们在与密度无关的像素情况下通过最小宽度和高度来为不同屏幕指定资源在。本章节中我们没有涉及该新 特性。如果想获得更多相关信息,请阅读Designing for Multiple Screens | 多屏幕适配设计 - Designing for Multiple Screens

创建不同的Bitmaps资源-Create Different Bitmaps

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...