如何在Android中显示来自.Net的透明背景的PNG图像?

时间:2014-02-20 12:26:24

标签: android .net png transparency

这是我在.NET上使用的方法来创建发送到android应用的字符串,图片为System.Drawing.Image类型转换为Bitmap

Public Shared Function SerializeObject(ByVal objeto As Bitmap) As String        

    Dim bitmapBytes As Byte()
    Dim stream As New System.IO.MemoryStream

    objeto.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp)
    bitmapBytes = stream.ToArray

    stream.Flush()
    stream.Dispose()

    Dim str1 = Convert.ToBase64String(bitmapBytes)
    Return str1
End Function

这是创建图像的android方法:

public static Bitmap GetObjectBitmap(String str) {
    Bitmap bm;

    try {
       byte [] encodeByte=Base64.decode(str.trim(), Base64.DEFAULT);
       bm = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);    
    } catch(Exception e) {
        e.getMessage();
        bm = null;
    }
    return bm;
}

问题是图像显示在ImageView中,背景为黑色而不是透明。

1 个答案:

答案 0 :(得分:0)

您正在以abmp格式保存图像,但您需要将其保存为png格式。

从您的代码中更改以下行

objeto.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp)

到此

objeto.Save(stream, System.Drawing.Imaging.ImageFormat.Png)