如何为多个屏幕分辨率定义可绘制文件夹名称(Nexus 10和Galaxy Tab 10之间的冲突)?

时间:2015-02-04 08:44:40

标签: android android-layout android-drawable android-screen-support android-screen

以下文件夹结构适用于上述设备和解决方案:

  • drawable-hdpi - 适用于480x800
  • drawable-ldpi - 空白
  • drawable-mdpi - 适用于320x480和240x320(mdpi设备)
  • drawable-sw600dp-tvdpi - 适用于Nexus 7 2012 tvdpi
  • drawable-sw600dp-xhdpi - 适用于Nexus 7 2013 xhdpi

问题在于 Nexus 10和Samsung Galaxy Tab 10 (Tab与Android 4.0和mdpi一起使用)。为了处理这两个设备,我添加了两个单独的可绘制文件夹:

  • drawable-sw800dp-xhdpi - 适用于Nexus 10(将​​2560x1600分辨率图像放入此文件夹)
  • drawable-sw800dp-mdpi - 适用于三星Galaxy Tab 10(将​​1280x800分辨率图像放入此文件夹)

但是,Nexus 10和Samsung Galaxy Tab 10都使用 drawable-sw800dp-xhdpi 中的图像。

我还尝试了什么?

  • drawable-sw720dp-xhdpi - 适用于Nexus 10
  • drawable-sw720dp-mdpi - 适用于三星Galaxy Tab 10

类似的结果,Nexus 10和三星Galaxy Tab 10都使用了drawable-sw720dp-xhdpi中的图像。

我还尝试使用drawable-xlarge-mdpidrawable-xlarge-xhdpi删除了drawable-sw800dp-mdpi& drawable-sw800dp-xhdpi )来处理三星Galaxy Tab 10但Tab是不推荐使用Android 4.0和xlarge结构。所以它是根据新的目录结构(即drawable-sw600dp-xhdpi)。

其他相关内容

在Eclipse图形布局编辑器中,选择10.1"之后显示正确的图像(来自drawable-sw800dp-mdpi)。 WXGA(平板电脑)就像三星Galaxy Tab 10.然而,当我在设备或模拟器中测试相同的东西时,它显示来自drawable-sw800dp-xhdpi的图像。

Manifrest:

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

布局:

layout

值:

values
values-sw320dp
values-sw600dp
values-sw800dp
  • 需要单独的可绘制文件夹,因为某些图像可以 不能转换成9个补丁图像。
  • 请问我的问题与 nexus 7和nexus 10 之间的冲突无关 或不在三星Galaxy Tab 7&#39;之间和三星Galaxy Tab 10 &#39;。

问题

那么Nexus 10和三星Galaxy Tab 10的可绘制文件夹应该是什么?

7 个答案:

答案 0 :(得分:8)

您可以使用以下格式的可绘制文件夹:

drawable-480x320
drawable-1280x800
drawable-2560x1600
...

答案 1 :(得分:2)

要解决mdpi平板电脑加载资源inf“drawable-sw720dp-xhdpi”的问题,请使用以下方法:

可绘制的名称“R.drawable。 ic_xxx ”;

drawable-xhdpi 将您的 Nexus 10 图片命名为ic_xxx_720.png;

drawable-mdpi 将您的三星Galaxy Tab 10 图片命名为ic_xxx_720.png;

然后在 values-sw720dp 中放置资源别名:

<item name="ic_xxx" type="drawable">ic_xxx_720.png</item>

答案 2 :(得分:1)

如果您使用的是Android工作室,则可以右键单击资源文件夹New-&gt; Android资源文件夹。您将看到可绘制文件夹的所有可用条件,包括屏幕大小。您还可以选择多重条件。 可能与Eclipse相同,但我没有对此进行过测试。

答案 3 :(得分:0)

可能有用的一件事是使用不同的最小宽度(假设它们与10&#34;以及10.1&#34;设备不同)。

要执行此操作,请使用应用获取确切的最小宽度,例如:https://play.google.com/store/apps/details?id=com.jotabout.screeninfo

如果它们不同,您只需将它们用作-swxxxdp限定符即可。

请注意,最小宽度限定符不需要是一个整数,它可以是任何值:sw800dp,sw801dp,sw802dp,...

答案 4 :(得分:0)

您必须重命名资源文件夹后清理项目,否则将不会重新生成R对象,这会使您的应用使用旧的引用。

你在这里所做的事情朝着正确的方向前进:

  

我还尝试使用drawable-xlarge-mdpi和drawable-xlarge-xhdpi   (删除了drawable-sw800dp-mhdpi&amp; drawable-sw800dp-xhdpi)

(我希望你没有拼写它&#34; mhdpi&#34;就像你在帖子中所做的那样)

答案 5 :(得分:0)

一组六个广义密度: ldpi(低)~120dpi mdpi(中)~160dpi hdpi(高)~240dpi xhdpi(超高)~320dpi xxhdpi(extra-extra-high)~480dpi xxxhdpi(extra-extra-extra-high)~640dpi

xlarge屏幕至少为960dp x 720dp 大屏幕至少640dp x 480dp 正常屏幕至少为470dp x 320dp 小屏幕至少为426dp x 320dp

请参阅

http://developer.android.com/guide/practices/screens_support.html

答案 6 :(得分:0)

尝试为平板电脑版本的资源可绘制文件夹使用配置限定符。

drawable-sw600dp(适用于7&#34;设备)
drawable-sw720dp(适用于10&#34;设备)
drawable-sw600dp-land(适用于7&#34;具有横向模式的设备) drawable-sw720dp-land(适用于10&#34;具有横向模式的设备)