[英]ImageView shows nothing
我有一个Bitmap
(1538 x 2000)并将其设置为ImageView
src
,但是当我运行该应用程序时,什么都没有显示(但活动背景色),我读到了有关位图尺寸限制的信息,但是如果问题是为什么我可以在同一设备上的图库中查看此位图?
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/pic3"/>
</FrameLayout>
任何帮助将不胜感激
你可以试试看
将图像放在资产文件夹中
src->main->assets
如果文件夹不存在,请创建它。
将图像放在此处后,在Java中使用此代码(以编程方式设置图像)。
Drawable d = null;
try {
d = Drawable.createFromStream(getAssets().open("YOUR_IMAGE_NAME"), null);
} catch (IOException e) {
e.printStackTrace();
}
imageView.setImageDrawable(d);
使用图像名称时,请确保也添加扩展名。 例如:background.jpg或backgroung.png。
这应该工作。
android中的图片大小有限制。 通常为2048(最大尺寸),但是您可以使用以下方法获取设备的特定值: Canvas.getMaximumBitmapWidth(), Canvas.getMaximumBitmapHeight()
您的图片大小似乎还可以,但是可能在错误的drawable文件夹中(因此,Android会以更高的分辨率读取它)。 您可以将图像放到drawable-nodpi
(更多信息: http : //developer.android.com/guide/practices/screens_support.html )文件夹中,以确保不会放大/缩小,但我个人认为会最好在多个文件夹(或矢量资产,如果图像在SVG中可用)中使用较低的分辨率
好吧,我认为问题是我在不考虑android行为的情况下滥用了drawable
文件夹,我将图像放在了drawable
文件夹中,Android认为它适合于mdpi
设备。
我的logcat之前曾指出:
OpenGLRenderer: Bitmap too large to be uploaded into a texture (2307x3000, max=2048x2048)
如您所见,原始大小为(1538x2000),logcat报告为原始大小(2307x3000),这意味着android会将我的图像缩放(1.5x)以适合我的hdpi
设备,当我使用资产作为@Prakhar加载它时,Scarlett speedstr说,工作如何我期望没有Android的干扰。
我也尝试了更多,并将图像放入drawable-hdpi
,并且在没有任何比例的情况下工作正常。
感谢您的帮助和评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.