PNG的ImageView没有出现(也许它太大了)

时间:2014-07-02 08:59:49

标签: android imageview png

在我的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中......)

3 个答案:

答案 0 :(得分:6)

我解决了仅将logo_big png图像移动到目录drawable-xhdpi,不知道为什么,但现在可以正常工作。

答案 1 :(得分:1)

这可能有多种原因,一个是文件名称不符合要求,这显然不是您的情况,但是我敢肯定,像我这样的许多其他人在寻找答案时也会遇到此问题

简而言之,允许使用下划线“ _”,但不允许使用下划线“-”,这可能是因为它们用于在文件名(或至少目录)中添加资源限定符。

这很容易记住,但更容易忘记。因此,举个例子,该文件不起作用:

poa-sample.png

解决方案是将其重命名为:

poa_sample.png

我把这个留在这里,因为它是如此愚蠢,这让我浪费了很多时间,尝试其他所有东西。您可能希望Android Studio在生成时会出现错误,例如使用无效的变量标识符,但直到今天,它甚至都不会给您适当的警告。

答案 2 :(得分:0)

尝试将您的图片文件重命名为“logobig”,没有下划线,看看是否有效。即使基于文件的资源名称允许下划线,我偶尔也会遇到麻烦