我正在为我正在工作的公司开发一款新应用。 我们在多个设备上测试这个,现在我注意到了另一天奇怪的事情,其他人也做过。
My Colleague在他的HTC one m8上测试了应用程序,我们在登录页面上有一个背景图片但是没有显示给他。然而,它确实在Nexus 7,三星Galaxy Tab 4,摩托罗拉G和三星S4上实现。
这可能非常具体,但我猜有些人在某些设备上必须注意到这种行为并发现为什么会出现这种情况?
图像保存在常规的drawable文件夹中,大小为1400px933px,它是一个jpeg。
我想知道是否有人有任何线索。
ImageView是相对布局的第一个子节点,其宽度和高度均为匹配父节点的大小。所以它应该恰到好处,其他观点都在这一点之上。
答案 0 :(得分:4)
我相信这个问题也与android如何缩放图像有关。尝试将图像放入drawable-nodpi
资源文件夹。
drawable
文件夹与drawable-mdpi
相同。在HTC One M8上,限定为mdpi
的图像按比例放大3倍。因此,1400x933px
图像变为4200x2799px
。 OpenGL允许的最大大小为4096x4096
。
答案 1 :(得分:2)
我遇到了与三星Galaxy Note 3类似的问题。这是唯一无法加载大型位图图像的设备。经过长时间的搜索后,我终于发现某些手机默认使用小堆大小的应用程序。这是因为内存优化和防止内存泄漏问题。所以基本上你可以做以下事情来解决这个问题,
对活动清单中的元素使用android:largeHeap="true"
。这将为您的应用程序提供较大的堆大小。
使用图像加载库 Android-Universal-Image-Loader
使用分辨率较低的优化图像。
答案 2 :(得分:1)
这可以回答,但因为我的搜索引导我到这里,而且可能会为其他人。我的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工作室设计师中看到这张照片,但是它出现在两者之后。