2012-04-27 58 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

我認爲有一個緩存的問題。您的圖像文件已更改,但壁紙不會,因爲它使用緩存的舊圖像。

要在代碼中解決這個問題,請刪除舊映像文件,使用新文件生成具有新名稱的新映像文件並設置背景。

相關問題