在我的AlertDialog里面我有一个ImageView,当我选择显示android:src="@drawable/logo_small"
(每个文件夹/ hdpi / ldpi等中的一个png大约64x64px)时,一切正常。相反,当我显示android:src="@drawable/logo_big"
(它只是1417x1417像素中的一个png和可绘制根文件夹中的593KB)时,图像不会出现。
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
>
<ImageView
android:id="@+id/imageLogoBig"
android:layout_width="30dp"
android:layout_height="30dp"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/logo_big" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@drawable/gplay_logo" />
</LinearLayout>
在上面的示例和下面的示例中,imageLogoBig没有显示:
<ImageView
android:id="@+id/imageLogoBig"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/logo_big" />
我刚刚在写这个问题时发现,如果我从drawable根目录中删除图像logo_big,如果我在drawable-hdpi,drawable-ldpi,drawable-mdpi和drawable-xhdpi中复制它,一切正常。这很奇怪,因为另一个图像:imageView1,只在drawable文件夹中(但是是172x60px)并且显示正确。
为什么会这样?有什么建议? (例如,只将logo_big放在drawable-xhdpi中......)
答案 0 :(得分:6)
我解决了仅将logo_big
png图像移动到目录drawable-xhdpi
,不知道为什么,但现在可以正常工作。
答案 1 :(得分:1)
这可能有多种原因,一个是文件名称不符合要求,这显然不是您的情况,但是我敢肯定,像我这样的许多其他人在寻找答案时也会遇到此问题
简而言之,允许使用下划线“ _”,但不允许使用下划线“-”,这可能是因为它们用于在文件名(或至少目录)中添加资源限定符。这很容易记住,但更容易忘记。因此,举个例子,该文件不起作用:
poa-sample.png
解决方案是将其重命名为:
poa_sample.png
我把这个留在这里,因为它是如此愚蠢,这让我浪费了很多时间,尝试其他所有东西。您可能希望Android Studio在生成时会出现错误,例如使用无效的变量标识符,但直到今天,它甚至都不会给您适当的警告。
答案 2 :(得分:0)
尝试将您的图片文件重命名为“logobig”,没有下划线,看看是否有效。即使基于文件的资源名称允许下划线,我偶尔也会遇到麻烦