在我的Android应用程序中,我在drawable
文件夹和drawable-hdpi
中使用不同名称的相同图像(svs.jpg和svs1.jpg)
首先,我使用了svs.jpg(可绘制文件夹)
<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/svs"
/>
在一个系统中,它运行时没有任何障碍,但它在另一个系统中显示错误(二进制xml文件中为Inflate exception error
)。所以我把图像svs1.jpg用作android:background="@drawable/svs1"
。现在它正在运作..
如果我在第一个系统上使用svs1.jpg,则显示错误。我无法理解这个问题。有人说为什么会这样?
答案 0 :(得分:1)
不同资源文件夹中的图像旨在获得相同的名称,因此设备将选择要使用的图像。
如果他们不这样做,我想有些设备正在寻找'drawable'中的图像名称并且如果他们找不到它就会崩溃,其他设备将在'device-hdpi'文件夹中查找并且如果他们崩溃找不到。
有关supporting multiple screen here的更多信息。
答案 1 :(得分:1)
看起来你真的误解了这些文件夹的作用。 你的机器人将根据你运行它的设备的屏幕尺寸或像素密度来选择文件夹
如果您的设备具有中等像素密度和大屏幕。因此,它从res文件夹中选择具有这些限定符的资源。
res/layout-large/my_layout.xml
和来自
的图片res/drawable-mdpi/my_icon.png
您无法告诉您的设备从hdpi文件夹中获取图像,因为它没有高像素密度。
所以你在所有可绘制的文件夹中给出相同的图像名称..你的设备默认ll决定从哪个文件夹拍摄图像,你不用担心。
并确保正确的图片位于正确的文件夹中。