我目前正在尝试在我的应用的登录屏幕上放置背景图片。我无法显示图片。
尝试了第一种方法:
<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特定图像不起作用?
我的文件夹结构:
答案 0 :(得分:2)
我认为您的XML没问题:
android:src="@drawable/login_bg"
问题可能出在您的图片 login_bg
在该位置 login_bg 尝试使用其他图像,如果可以,则可能是您的图像出了问题,所以请尝试使用其他图像。
android:src="@drawable/new_image"
更新的答案
因此,在检查完已编辑的问题之后:
我认为您在应用中使用的是高分辨率图片, 日志文件中出现 OutOfMemoryError 错误。
所以您应该像这样在清单中定义android:largeHeap
和android: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"
....
....
希望我的回答对您有帮助。