Android字节到位图

Android字节到位图,android,image,bitmap,bytearray,Android,Image,Bitmap,Bytearray,我在我们的iPhone应用程序中可以很好地使用它,但是在Android中我遇到了问题。我在两个应用程序中使用相同的URL/数据。当我将ListView中的图像设置为来自字节的位图时,图像不会出现。数据就在那里。以下是我分配视图的代码: if (camera.snapshot != null) { bMap = BitmapFactory.decodeByteArray(camera.snapshot, 0, camera.snapshot.length);

我在我们的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中使用预构建的方法将其转换为图像。它工作得很好!这里缺少什么?

您可能需要使用4参数版本的
decodeByteArray
:请参阅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;

您可以查看和了解更多详细信息。

这里一切正常。因此,您需要进行调试,以尝试找出问题所在。i、 e.Camera.snapshot是否为空?i、 e.您可能没有正确获取数据。或者,在显示imageview的布局中也可能存在问题。尝试将预定义图像设置为imageview,并查看是否显示该图像。这样你就可以跟踪问题。

我做了这些事情。我实际上在视图中有一个默认图像。并且快照不是空的:(