我在iPhone应用程序中运行良好,但在Android中遇到问题。我在两个应用程序中都使用相同的URL /数据。当我将ListView中的图像设置为来自字节的位图时,图像不会出现。数据就在那里。这是我分配视图的代码:
if (camera.snapshot != null)
{
bMap = BitmapFactory.decodeByteArray(camera.snapshot, 0, camera.snapshot.length);
image.setImageBitmap(bMap);
}
这是我将字符串数据转换为字节的地方:
camera.snapshot = responseData.getBytes();
图像是PNG文件。对于listview图像,它们的大小是我需要的大小的4倍,但我认为它们的大小完全符合我设置ImageView的边界。
在iPhone上,我只使用NSData,然后在ImageView中使用预建方法将其转换为图像。它完美无缺!我在这里缺少什么?
答案 0 :(得分:0)
您可能需要使用decodeByteArray
的4参数版本:请参阅http://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeByteArray%28byte[],%20int, %20int,%20android.graphics.BitmapFactory.Options%29
选项取决于PNG图像的类型,因此您可能需要进行试验。对于通用的PNG,可能是这样的吗?
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inDither = true;
opt.inPreferredConfig = Bitmap.Config.ARGB_8888;
您可以查看http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html和http://developer.android.com/reference/android/graphics/Bitmap.Config.html了解更多详情。
答案 1 :(得分:0)
这里一切都很好。因此,您需要进行调试以尝试查找问题所在。即Camera.snapshot = null?即您可能无法正确获取数据。或者在布局中也可能存在显示imageview的问题。尝试将预定义图像设置为imageview并查看是否显示。通过这种方式,您可以跟踪问题。