ImageView在布局中显示但不在实际设备上显示

问题描述 投票:25回答:6

我有一个想要显示匹配设备的整个宽度的ImageView,我意识到这样:

<ImageView
    android:id="@+id/home_bar_newvault"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:scaleType="centerCrop"
    android:layout_alignParentBottom="true"
    android:src="@drawable/home_bar" />

home_bar是一个PNG图像文件,其大小如下:2399x254。当我选择查看UI的图形布局时,它会在活动的底部正确显示图像视图。但是,当我在设备上启动应用程序时,它根本不会显示Imageview。

android imageview device
6个回答
55
投票

我遇到了同样的问题,它只显示在Android Studio 2.2的“设计”选项卡中。

我做的工作是将分配的自动键(通过拖放ImageView填充)从app:srcCompat="@drawable/logo"更改为文本选项卡中的android:src="@drawable/logo",使其显示在模拟器和设备上,例如

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/logo"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="75dp"
    android:id="@+id/logoImageView"
    android:scaleType="fitXY"
    android:scaleX="1.5"
    android:scaleY="1.5" />

17
投票

好吧我已经尝试改变图像的分辨率(将其切成两半使其成为1000x130),并以某种方式解决了问题。我认为Android无法直接呈现这样的大图像?我不知道,如果您对该主题有更多了解,请不要犹豫回复!无论如何,缩小图像工作。


7
投票

您可以使用:

android:background="@drawable/home_bar"

代替:

android:src="@drawable/home_bar"

5
投票

如果图像太大,请在drawable-nodpi中使用res文件夹。


0
投票

我有一个问题,三星手机没有显示我的drawable,但它在另一部手机上工作正常。图片没有任何大尺寸或其他异常。

为了解决这个问题,我只需将我的图片资源放入一个可绘制的子文件夹中,而不是将其放在主要的drawable文件夹中。例如从res / drawable到res / drawable-mdpi为我工作。如果您有一张照片用于没有特定dpi的所有内容,请将其放入res / drawable-nodpi。 Here's关于dpi文件夹的更多信息。


0
投票

以上都没有做到这一点,这是一个非常大的图像,找到了这个解决方案:在你的清单文件中

<application
        //this solve it for me.
        android:hardwareAccelerated="false"
        // Add this if the previuos line didn't solve tge problem
        android:largeHeap="true"
        android:theme="@style/AppTheme">

为我解决它。

希望它可以帮助某人。