0

我正在创建一个支持多个屏幕的应用程序,并为可绘制的可绘制对象添加了密度限定符和大小限定符我想问的是:

1-如果我有高密度或中等的小屏幕设备怎么办?设备会选择哪个drawable,它会选择小屏幕还是mdpi/hdpi ..?

2-我如何放置一个限定符,例如大限定符 drawable-large,但这是特定于平板电脑的,它与其他设备的大限定符不同......

3-在我的布局中,我有 textview 和一个图像,我需要增加图像的大小,因为设备屏幕大小会增加与文本相同的东西......所以我所做的最好的解决方案是我放置在layout-small 一个带有 14sp 文本的小图像,对于大布局,我放置了一个 17sp 文本大小的更大图像......这是一个好的解决方案还是会导致一些问题......

4

3 回答 3

0

您可以为多个屏幕和不同密度的图像制作布局

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        // bitmap for medium density 48*48
res/drawable-hdpi/my_icon.png        // bitmap for high density   72*72
res/drawable-xhdpi/my_icon.png       // bitmap for extra high density  96*96

Android 根据尺寸和密度自行管理 请在此处阅读所有关于多屏的内容 http://developer.android.com/guide/practices/screens_support.html

于 2013-08-22T12:09:40.480 回答
0

对于不同的屏幕尺寸,布局不是用 xml 编码的。可以,但专业人士正在应用程序中进行动态操作。对于像图像这样的资源,每个屏幕都需要 4 种类型至少 1 个图像,例如 ldpi/mdpi/hdpi/xhdpi/xxhdpi。

于 2013-08-22T12:13:19.327 回答
0

您应该首先在您的文件夹中创建这些文件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        // bitmap for medium density
res/drawable-hdpi/my_icon.png        // bitmap for high density
res/drawable-xhdpi/my_icon.png       // bitmap for extra high density

然后打开并编辑每个布局,然后我ManifestFile添加这个:

<supports-screens android:smallScreens="true"
         android:normalScreens="true" 
         android:largeScreens="true"
         android:xlargeScreens="true"
         android:anyDensity="true"
         android:resizeable="true"/>

创建文件夹后首先检查您的Manifest文件,如果此代码没有其他任何操作copy并且paste它...

于 2013-08-22T12:26:40.753 回答