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

标签 android android-manifest android-drawable android-screen-support android-screen

对于我需要在我的应用程序中使用的每个图标,我有 4 种不同的尺寸。问题是 My Nexus 7 (1280 x 800) 和 Galaxy s2 (800 x 480) 似乎使用了 drawable-hdpi 中的资源。如何强制 Nexus 使用 drawable-xhdpi 中的资源,然后使用 10 英寸选项卡使用 drawable-xxhdpi。

我的 list 文件中有这个

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

最佳答案

How do I force the Nexus to use resources in drawable-xhdpi and then the 10 inch tab to use drawable-xxhdpi?

你不能。

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

Screen density

The quantity of pixels within a physical area of the screen; usually referred to as dpi (dots per inch). For example, a "low" density screen has fewer pixels within a given physical area, compared to a "normal" or "high" density screen. For simplicity, Android groups all actual screen densities into four generalized densities: low, medium, high, and extra high.

如果您还想支持平板电脑,请使用 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限定符可以改变。 (根据我自己的经验,先放一个文件夹drawable-large-mdpi for 7 inch devices and check it on Nexus 7.如果图片没有问题,你不必再放一个文件夹。因为如果特定文件夹不存在,Android 将检查最近的可能文件夹并针对设备屏幕对其进行优化)

现在关于 10 英寸平板电脑外壳,它们是 xlarge 设备,它们的密度可以从 mdpi 更改为 xhdpi(Nexus 10)。但许多分辨率为 1280 * 800 并且是 mdpi 设备。

更好的做法是放下面的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

关于android - 设置可绘制文件夹以用于不同的分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079588/

相关文章:

java - 当前连接的蓝牙设备android

android - 在sqlite数据库android中插入日期时间

android - 尝试启用到 Android 应用程序的深度链接,测试 Intent 无法启动 Activity

android - 如何在 Android 中打开新屏幕

android - 自定义形状的 Linearlayout 在 android 中具有弯曲的一面

Android 资源按 ID/更改图像 onClick/不更改 imageView

android - fragment 的支持库教程

java - 当数据不以新行结尾时,有没有办法从套接字中读取数据?

android - M 新保护级别列表?

Android使用ImageResource和Drawable的区别