图像未出现在 HTC One M8 上

Image not appearing on HTC One M8

我目前正在为我工​​作的公司开发一款新应用。 我们在多个设备上对此进行了测试,前几天我注意到了一件奇怪的事情,其他人也做过。

我的同事在他的 HTC one m8 上测试了该应用程序,我们在登录页面上有背景图片,但没有为他显示。但是在 Nexus 7、Samsung Galaxy Tab 4、Motorola G 和 Samsung S4 上确实如此。

这可能非常具体,但我想有些人之前一定在某些设备上注意到了这种行为,并找出了为什么会发生这种情况?

图像保存在常规可绘制文件夹中,大小为 1400px933px,为 jpeg。

不知道有没有人知道。

ImageView 是相对布局的第一个子级,宽度和高度的大小都与父级匹配。所以它应该刚好合适,其他视图在这个之上。

我在使用 Samsung Galaxy Note 3 时遇到了类似的问题。这是唯一无法加载大位图图像的设备。经过相当长的搜索后,我终于发现某些 phone 默认情况下为应用程序使用较小的堆大小。这是因为内存优化和防止内存泄漏问题。所以基本上你可以做以下事情来解决这个问题,

  1. 对 activity 清单中的元素使用 android:largeHeap="true"。这将为您的应用程序提供较大的堆大小。

  2. 使用像这样的图像加载库 Android-Universal-Image-Loader

  3. 使用分辨率较低的优化图片。

我认为这个问题也与 android 缩放图像的方式有关。尝试将图像放入 drawable-nodpi 资源文件夹。

drawable 文件夹与 drawable-mdpi 相同。在 HTC One M8 上,符合 mdpi 条件的图像被放大了 3 倍。因此您的 1400x933px 图像变为 4200x2799px。 OpenGL 允许的最大尺寸是 4096x4096.

这可能会得到解答,但因为我的搜索将我引导到这里,而且其他人也可能会得到解答。我的 xml 以前是这样的。看到它生成 app:srcCompat 感到很惊讶,因为我从未听说过。我保持代码不变,并将“@drawable/your_image”复制为我添加的新属性的值 android:src.

<ImageView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  app:srcCompat="@drawable/salwa_small"
  android:id="@+id/img_my_profile_picture"/>

之后:

<ImageView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  app:srcCompat="@drawable/salwa_small"
  android:src="@drawable/salwa_small"
  android:id="@+id/img_my_profile_picture"/>

我之前只能在 android studio designer 中看到图片,但在两者中都出现了。