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 に答える