ImageView什么都没显示

时间:2016-03-28 13:18:14

标签: android android-imageview android-bitmap

我有一个Bitmap(1538 x 2000)并将其设置为src的{​​{1}}但是当我运行该应用时没有显示任何内容(但活动背景颜色),我读了关于位图尺寸限制的事情,但如果问题是限制,为什么我可以在同一设备上的图库查看此位图?

ImageView

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:2)

你可以试试这个。

将图像放入资源文件夹

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。

这应该有效。

答案 1 :(得分:0)

android中的图像大小有限制。它通常是2048(最大尺寸),但您可以使用以下方法获取设备的特定值:Canvas.getMaximumBitmapWidth(), Canvas.getMaximumBitmapHeight()

你的图像大小似乎没问题,但也许它在一个错误的可绘制文件夹中(因此,android以更高的分辨率读取它)。您可以将图像放到drawable-nodpi(更多信息:http://developer.android.com/guide/practices/screens_support.html)文件夹中,以确保它不会上/下标,但我个人认为最好使用较低的分辨率,可能是多个文件夹(或矢量资产,如果图像在SVG中可用)

答案 2 :(得分:0)

好吧,我认为问题是我滥用<?import javafx.geometry.*?> 文件夹而没有考虑安卓行为,我把图像放在drawable文件夹中,而android假定它适用于drawable设备。< / p>

我的logcat之前指的是:

mdpi

你可以看到原始大小是(1538x2000),logcat报告它(2307x3000),这意味着android缩放(1.5x)我的图像适合我的OpenGLRenderer: Bitmap too large to be uploaded into a texture (2307x3000, max=2048x2048) 设备,当我使用资源加载它@Prakhar时 - scarlett的速度表示,如果没有安全干扰,我的预期就会如此。

此外,我尝试了更多并将图像放在hdpi中,并且没有任何比例,它工作正常。

感谢您的有用答案和评论。