2012-04-27 57 views
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"); 

回答

3

我认为有一个缓存的问题。您的图像文件已更改,但壁纸不会,因为它使用缓存的旧图像。

要在代码中解决这个问题,请删除旧映像文件,使用新文件生成具有新名称的新映像文件并设置背景。

相关问题