[英]Creating multi-screen support app android
我正在Android中创建一个必须支持多个屏幕的应用程序。
为此目的,我已经阅读了很多答案,我最喜欢的一个是,我可以通过以下名称在res文件夹中创建不同的文件夹,
对于小屏幕布局 - 小 ,
对于大屏幕布局 - 大 ,
对于超大屏幕布局-xlarge
我必须为同名的不同屏幕创建不同的布局。 例如mylayout.xml
我必须在manifest.xml文件中放入以下代码
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
最后我只需要在我的Activity文件中写下以下行,
setContentView(R.layout.mylayout);
现在当我在不同尺寸的屏幕上运行这个应用程序时,它应该根据屏幕分辨率从不同的文件夹中获取布局。
但这种情况在我的情况下并没有发生。它只采用布局文件夹中定义的布局 。
请有人可以解释一下为什么会发生这种情况以及如何解决这个问题,以便我的应用可以在所有尺寸的屏幕上有效运行。
尝试像:
代替
请参考以下链接:
http://developer.android.com/guide/practices/screens_support.html对于不同的屏幕尺寸,以下是应用程序中的资源目录列表,它为不同的屏幕尺寸提供不同的布局设计,并为小型,中型提供不同的位图可绘制,高密度和超高密度屏幕。 您可以在res文件夹中使用不同大小的布局文件,并根据密度对可绘制图像进行更改。
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
res / drawable-mdpi / my_icon.png //中密度res / drawable-hdpi / my_icon.png位图//高密度res / drawable-xhdpi / my_icon.png位图//高密度位图
<compatible-screens>
<screen
android:screenDensity="ldpi"
android:screenSize="small" />
<screen
android:screenDensity="mdpi"
android:screenSize="normal" />
<screen
android:screenDensity="xhdpi"
android:screenSize="large" />
<screen
android:screenDensity="xhdpi"
android:screenSize="xlarge" />
</compatible-screens>
然后任何活动使用这一行..
机器人:configChanges = “方向|屏幕尺寸| keyboardHidden”
在values文件夹中,命名约定如layout-small
仅适用于api version less than 3.1
。 您应创建值为layout-sw600dp
值文件,以便api级别大于3.1。 阅读此http://developer.android.com/guide/practices/screens_support.html3.1api
像这样你应该为每种类型的设备创建layout-sw600dp,layout-sw720dp。 layout-sw600dp表示此布局适用于宽度最小为600dp的设备如果您有layout-600dp和layout-sw720dp文件夹。 第一个布局文件夹适用于宽度最小为600dp(7英寸平板电脑)至720dp的设备,第二个适用于宽度最小且高于720dp(10英寸平板电脑)的设备。
如果您所需的最低版本高于3.1,则不需要layout-small,layoutxLarge文件夹。 否则你必须考虑两种类型的布局fromats。
这是一个快速清单 ,说明如何确保应用程序在不同屏幕上正确显示:
在XML布局文件中指定维度时wrap_content, fill_parent,
请使用wrap_content, fill_parent,
或dp
单位。 不要在应用程序代码( .java
文件)中使用硬编码pixel
值。 不要使用AbsoluteLayout
(它在Android 1.5
已弃用)。 您应该使用RelativeLayout
,它使用相对定位来布局其子视图。 为不同的屏幕密度提供替代位图drawable。
花点时间阅读这些screens_support或更好地了解Android如何找到最匹配的资源,以便您知道将资源放在何处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.