1

我正在使用以下代码将图像写入sdcard然后显示为墙纸,但它只能工作一次,也就是说,它不会改变任何其他图片,所以我猜它没有覆盖文件,为什么?

D.kF[]是一个位图数组 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");
4

1 回答 1

3

我认为存在缓存问题。您的图像文件已更改,但墙纸没有更改,因为它使用缓存的旧图像。

要在您的代码中解决此问题,请删除旧图像文件,使用新的不同名称生成新图像文件并使用此新文件设置背景。

于 2012-04-27T05:11:47.530 回答