所以,我有一个要保存和加载的位图图像。保存时,我首先将其转换为 byte[] 值,然后使用 save(); 保存它。当我尝试通过检查它的字符串值(以检查是否为空)来检查它是否有效时,我得到如下信息:“[B@16166c9a” 然后,我将它转回位图值,但在这样做之后,位图值仍然为空。
这是我用来保存的代码:
public void saveImage(){
imageToSave = Utilities.getBytes(backGround);
}
这是我用来加载的代码:
public void updateImage(){
backGround = Utilities.getImage(imageToSave);
}
这是实用程序类:
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
很抱歉代码混乱和评论不好。
我非常感谢任何帮助!:)