ImageView问题,图像不显示或抛出错误

时间:2018-08-10 17:01:54

标签: android android-activity imageview

我目前正在尝试在我的应用的登录屏幕上放置背景图片。我无法显示图片。

尝试了第一种方法:

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/login_bg"
    android:scaleType="centerCrop"
    android:contentDescription="@string/description_bg" />

这将打开应用程序,但不显示图像。 (它显示的是白色背景)。

尝试了第二种方法:

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/login_bg"
    android:scaleType="centerCrop"
    android:contentDescription="@string/description_bg" />

哪个返回错误:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: package, PID: 30016
              java.lang.RuntimeException: Unable to start activity ComponentInfo{package/package.LoginActivity}: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class android.widget.ImageView

完整堆栈跟踪here

我正在我的LoginActivity中扩展Activity

编辑

我刚刚尝试了另一张图片,效果很好。为什么this特定图像不起作用?

我的文件夹结构:

My folder structure

1 个答案:

答案 0 :(得分:2)

我认为您的XML没问题:

android:src="@drawable/login_bg"

问题可能出在您的图片 login_bg

在该位置 login_bg 尝试使用其他图像,如果可以,则可能是您的图像出了问题,所以请尝试使用其他图像。

android:src="@drawable/new_image"

更新的答案

因此,在检查完已编辑的问题之后:

我认为您在应用中使用的是高分辨率图片, 日志文件中出现 OutOfMemoryError 错误。

所以您应该像这样在清单中定义android:largeHeapandroid:hardwareAccelerated

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:hardwareAccelerated="false"
android:theme="@style/AppTheme"
....
....

希望我的回答对您有帮助。