2

在我的 Android 应用程序中,我将一些图像保留在"mdpi"中并保留在"ldpi"中。然后我的应用程序也可以在各种设备(虚拟设备和移动设备)上正常运行。图像不是假设是根据设备的分辨率获取的。怎么会显示???

4

4 回答 4

1

mdpi 和 ldpi 是覆盖。如果android通过名称找到一个drawable,它会使用它,但是如果存在多个不同分辨率的图像,它将选择最接近的一个。

于 2013-02-18T07:14:29.423 回答
1

默认情况下,Android 会缩放您的位图可绘制对象 (.png、.jpg 和 .gif 文件)九补丁可绘制对象(.9.png 文件),以便它们在每个设备上以适当的物理尺寸呈现。

例如,baseline如果您的应用程序只为,提供位图可绘制对象medium screen density (mdpi),那么系统在高密度屏幕上时会放大它们,而在低密度屏幕上时会缩小它们。这种缩放会导致位图中出现伪影。为确保您的位图看起来最好,您应该包含针对不同屏幕密度的不同分辨率的替代版本。

可用于密度特定资源的配置限定符是ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high). 例如,高密度屏幕的位图应该放在res/drawable-hdpi.

有关屏幕的更多信息,您应该参考这个

于 2013-02-18T07:15:08.517 回答
1

Android 有一个非常具体的算法来选择正确的可绘制对象。这是它的样子:

Android 可绘制选择

这里有详细解释:

http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch

于 2013-02-18T07:34:52.550 回答
0

场景如下:

布局:-

res/layout/my_layout.xml             // layout for normal screen size ("default") (320 * 480)
res/layout-small/my_layout.xml       // layout for small screen size (240 * 320)
res/layout-large/my_layout.xml       // layout for large screen size (480 * 800/854)
res/layout-xlarge/my_layout.xml      // layout for extra large screen size (720/800 * 1280)

可绘制对象:-

res/drawable-mdpi/my_icon.png        // bitmap for medium density, used by layout-small & layout
res/drawable-hdpi/my_icon.png        // bitmap for high density, used by layout-large
res/drawable-xhdpi/my_icon.png       // bitmap for xtra-high density, used by layout-xlarge

希望它有所帮助。如果有任何困惑,请询问。请同时阅读一次Screens Support APIs

谢谢。

于 2013-02-18T07:27:05.087 回答