使用Sugar ORM保存图像

时间:2015-11-30 22:36:23

标签: android database orm bitmap sugarorm

所以,我有一个想要保存和加载的Bitmap图像。保存时我首先将其转换为byte []值,然后使用save();保存它。 当我尝试通过检查它的字符串值来检查它是否有效(检查是否为null)我得到这样的东西:“[B @ 16166c9a” 然后,我将其转回Bitmap值,但在执行此操作后,位图值仍为空。

这是我用来保存的代码:

    public void saveImage(){
    imageToSave = Utilities.getBytes(backGround);
}

这是我用来加载的代码:

    public void updateImage(){
    backGround = Utilities.getImage(imageToSave);
}

这是Utilities类:

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import java.io.ByteArrayOutputStream;

public class Utilities {

public static byte[] getBytes(Bitmap bitmap)
{
    ByteArrayOutputStream stream=new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG,100, stream);
    return stream.toByteArray();
}
public static Bitmap getImage(byte[] image)
{
    return BitmapFactory.decodeByteArray(image, 0, image.length);
}

}

其余代码可在此处获取:

https://github.com/smholsen/BigDayCountdown/tree/master/app/src/main/java/com/simonm/bigdaycountdown

对于乱码和错误的评论感到抱歉。

我非常感谢任何帮助! :)

1 个答案:

答案 0 :(得分:0)

这是一个非常适合我的课程。

public class ImageUtil {

public static byte[] GetByteFromBitmap(Bitmap bmp)
{
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
    return stream.toByteArray();
}

public static Bitmap convertByteArrayToBitmap(byte[] byteArrayToBeCOnvertedIntoBitMap)
{
    Bitmap bitMapImage = BitmapFactory.decodeByteArray(
            byteArrayToBeCOnvertedIntoBitMap, 0,
            byteArrayToBeCOnvertedIntoBitMap.length);
    return bitMapImage;
}}