我正在使用以下代码将图像写入sdcard
,然后显示为壁纸,但它只能工作一次,也就是说,它不会为任何其他图片更改它所以我猜它是不是要覆盖文件,为什么?
D.kF [] 是一个Bitmap数组 D.bgNumber 是一个int
Graphics graphics = Graphics.create(D.kF[D.bgNumber]);
JPEGEncodedImage encoder = JPEGEncodedImage.encode(D.kF[D.bgNumber], 100);
try {
ExtendedFileConnection fconn = (ExtendedFileConnection) Connector
.open("file:///store/home/user/pictures/image.jpg",
Connector.READ_WRITE);
fconn.enableDRMForwardLock();
if (!fconn.exists()) {
fconn.create();
}
OutputStream os = fconn.openOutputStream();
os.write(encoder.getData());
os.close();
fconn.close();
} catch (Exception e) {
System.out.println("Output file error: " + e.getMessage());
}
HomeScreen.setBackgroundImage("file:///store/home/user/pictures/image.jpg");
答案 0 :(得分:3)
我认为存在缓存问题。您的图片文件已更改,但壁纸未更改,因为它使用缓存的旧图片。
要在代码中删除旧图像文件,请使用此新文件生成具有新的不同名称的新图像文件并设置背景。