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

时间:2013-08-15 10:50:49

标签: android imageview device

我想要显示一个与设备的整个宽度匹配的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。

10 个答案:

答案 0 :(得分:54)

我遇到了同样的问题,它只在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" />

答案 1 :(得分:16)

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

答案 2 :(得分:7)

你可以使用:

android:background="@drawable/home_bar"

而不是:

android:src="@drawable/home_bar"

答案 3 :(得分:4)

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

答案 4 :(得分:0)

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

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

答案 5 :(得分: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">

为我解决。

希望它可以帮助某人。

答案 6 :(得分:0)

我遇到了同样的问题,可以使用以下方法解决它。

我的问题是可绘制存档的方向写在第二个scrCompact框中。

我将复制粘贴到向上的框中,问题已解决。

enter image description here

答案 7 :(得分:0)

对我来说,问题是我在使用

tools:src=...

而不是

android:src=...

它会自动生成,以尝试使用已经存在的模板图像。

答案 8 :(得分:0)

就我而言, 我更改图像的比例类型

android:scaleType="fitXY"

答案 9 :(得分:0)

(以下回答基于Android Studio最新开发(2021))

您应该使用 androidx.appcompat.widget.AppCompatImageViewapp:srcCompat 来最大化兼容性。

当您创建新的默认项目时应包含实现,因为这在某种程度上类似于 ConstraintLayout 案例。

<androidx.appcompat.widget.AppCompatImageView
    android:id="@+id/home_bar_newvault"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:scaleType="centerCrop"
    android:layout_alignParentBottom="true"
    app:srcCompat="@drawable/home_bar" />