我在 RelativeLayout 中有一个 ImageView:
<ImageView
android:id="@+id/image"
android:src="@drawable/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
它适用于许多设备(手机和平板电脑)和模拟器,但不适用于装有 Android 6 的 Google Nexus 5。该应用程序运行良好,但不显示 ImageView 背景。
(图像在可绘制文件夹中,我使用 setImageResource 更改图像)
最佳答案
我也遇到了同样的问题,我的图像显示在 Android 6.0 的所有 android 版本中。 我在 android 5.0 和 android 6.0 中测试我的应用程序,当时图像在 android 5.0 中正确显示,但在 android 6.0 中图像不会加载到 Imageview 中。
我使用了 src 和 background 这两个属性,但没有在 android 6.0 的 Imageview 中获取图像。
然后,为了解决这个问题,我检查了我的 logcat,我在 logcat 中得到了以下字符串。
W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (3240x5760, max=4096x4096)
我搜索了相关的这个字符串并得到了解决方案,它是 Android 6.0 不允许在 UI 线程中执行繁重的进程。如果您的图像尺寸和分辨率都较小,那么您可以使用 src 或 background 加载它。但是你的图片太重了,Android 6.0 在 UI Thread 中跳过了这个过程。
但是,您可以使用以下解决方案解决此问题。
解决方案 1:
使用第三方库解决,如Glide用于加载繁重的图像。 我已经用这个解决了它。
方案二:
在res
中添加一个drawable-nodpi
文件夹,将图片放入其中,只需在Imageview标签中与src一起使用即可。
关于java - imageView 在 Nexus 5 (Android 6.0) 中不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33204925/