设置可绘制文件夹以用于不同的分辨率



我需要在我的应用程序中使用的每个图标有4种不同的大小。问题是我的Nexus 7 (1280 x 800)和galaxy s2 (800 x 480)似乎使用draw_hdpi中的资源。我如何强制Nexus使用draw_xhdpi中的资源,然后强制10英寸选项卡使用draw_xxhdpi。

在我的manifest文件

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

我如何强制Nexus使用draw_xhdpi中的资源,然后10英寸TAB使用draw_xxhdpi ?

你不能。

限定符hdpi,xhdpi,xxhdpi描述设备的屏幕密度,而不是屏幕的大小。来自官方文档

屏幕密度

屏幕物理区域内的像素数量;通常简称dpi(点每英寸)。例如,"低"密度屏幕在给定的物理区域内具有更少的像素"正常"或"高"密度屏幕。为了简单起见,Android将所有功能分组实际屏幕密度分为四种广义密度:低、中、

如果还想支持平板电脑,请使用large, xlarge限定符。Nexus 7是一个large-hdpi平板电脑(技术上它是tvdpi,但从hdpi拍摄图像)。所以如果你想为Nexus 7放图片,创建一个名为drawable-large-hdpi的文件夹,把图片放在那里。

:这是Nexus 7的特殊情况。因为即使Nexus 7是一个7英寸的平板电脑,它的分辨率1280 * 800。所以这是一个hdpi设备。但普通的7英寸设备分辨率较低,1024 * 600。所以它们是mdpi器件。所以drawable限定符可以改变。(根据我自己的经验,首先在7英寸设备上放一个文件夹drawable-large-mdpi,然后在Nexus 7上检查一下。如果图片没有问题,你不需要再放一个文件夹。因为如果一个特定的文件夹不存在,Android将检查最近的可能文件夹,并为设备屏幕优化它)

现在关于10英寸平板电脑的情况,它们是xlarge设备,它们的密度可以从mdpi变化到xhdpi (Nexus 10)。但很多都是mdpi器件,分辨率1280 * 800

更好的做法是把下面的drawables

// for Phones
drawable-ldpi
drawable-mdpi
drawable-hdpi
//for 7 inch tablets
drawable-large-mdpi
drawable-large-hdpi(for Nexus 7)
// for 10 inch tablets
drawable-xlarge-mdpi

尝试使用Configuration qualifiers作为您的资源。这是最佳实践。如res/drawable-normal-hdpi-port/icon.png .

Ref Link: Configuration qualifiers

谢谢。

The problem is My Nexus 7 (1280 x 800) and galaxy s2 (800 x 480) seem to use the resources in drawable-hdpi

这取决于设备如nexus 7240dpi这是hdpi设备它会从hdpi中获取可绘制的资源如果你在samsung tab 2中进行测试它会从mdpi中获取相同的可绘制资源因为它是mdpi设备

相关内容

  • 没有找到相关文章

最新更新