我有一个Bitmap
(1538 x 2000)并将其设置为src
的{{1}}但是当我运行该应用时没有显示任何内容(但活动背景颜色),我读了关于位图尺寸限制的事情,但如果问题是限制,为什么我可以在同一设备上的图库查看此位图?
ImageView
任何帮助将不胜感激
答案 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
中,并且没有任何比例,它工作正常。
感谢您的有用答案和评论。