2013-04-23 64 views
0

我有同样的图像同时在drawable文件夹和drawable-hdpi用不同的名称(svs.jpg和svs1.jpg)在我的Android应用程序的Android图像绘制文件夹的问题

首先,我用svs.jpg (可绘制文件夹)

<ImageView 
    android:id="@+id/image1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/svs" 
/> 

在一个系统中运行没有任何阻碍,但它表明错误在另一系统(Inflate exception error二进制XML文件)。所以我使用了图像svs1.jpg作为android:background="@drawable/svs1"。现在它工作..

如果我在第一个系统上使用svs1.jpg它显示错误。我无法理解这个问题。有人说为什么会发生这种情况?

回答

1

不同资源文件夹中的图像是为了获得相同的名称,因此设备将选择要使用的图像。

如果他们不这样做,我想有些设备正在'drawable'中查找图像名称,如果找不到它,其他设备会查看'device-hdpi'文件夹并崩溃if他们没有找到它。

有关supporting multiple screen here的更多信息。

+0

你是说,如果我使用10张图像,我必须将所有10张图像复制到所有这些可绘制,hdpi,mdpi,ldpi文件夹中? – 2013-04-23 06:58:35

+0

针对不同的屏幕分辨率,您需要提供不同的可绘图 – Raghunandan 2013-04-23 07:00:57

+0

感谢您的澄清+1 – 2013-04-23 07:10:46

1

看来你真的误解了这些文件夹的功能。 您的Android将选择基于其文件夹的屏幕尺寸或设备的像素密度在其中U运行

如果您的设备具有中等像素密度和大屏幕。因此,它会从res文件夹中选择具有限定符的资源。

res/layout-large/my_layout.xml 

和图片来自

res/drawable-mdpi/my_icon.png 

你不能告诉你的设备来从华电国际文件夹的图像,因为它不具备高像素密度。

所以你给图像的名称在所有可绘制的文件夹中相同..你的设备默认情况下决定从哪个文件夹拍摄图像,你不必担心tat。

只是确保正确的图像在正确的文件夹。

+0

感谢您的澄清+1 – 2013-04-23 07:14:18

相关问题