繁体   English   中英

ImageView什么也没显示

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM