3

アプリケーションセッション間で画像をロードできるように、フォトギャラリーからローカルストレージに画像を保存しようとしています。ユーザーが画像の選択を完了すると、次のロジックが実行されます。シミュレーターでは、エラーメッセージがログに書き出されているのがわかります。エラーメッセージが表示されていても、アプリケーションを再起動すると保存された画像をロードできるため、画像はシミュレーションに保存されていると思います。ただし、これをデバイスで実行すると、以下のコードに表示されるエラーメッセージが表示され、書き込みが成功しなかったことを示すデフォルトのバックグラウンドが読み込まれます。

誰かが私が間違っていることと、画像が正常に保存されない理由を知ることができますか?

var image = i.media.imageAsResized(width, height);
backgroundImage.image = image;      
function SaveBackgroundImage(image)
        {
            var file = Ti.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,W.CUSTOM_BACKGROUND);
            if(file.write(image, false))
            {
                W.analytics.remoteLog('Success Saving Background Image');
            }
            else
            {
                W.analytics.remoteLog('Error Saving Background Image');
            }
            file = null;            
        }
4

1 に答える 1

4

このコードを試してください:

var parent = Titanium.Filesystem.getApplicationDataDirectory();
var f = Titanium.Filesystem.getFile(parent, 'image_name.png');
f.write(image);
Ti.API.info(f.nativePath); // it will return the native path of image

あなたのコードでは、画像のタイプ(png/jpeg)を指定していないため、エラーが発生します。

于 2012-12-05T14:30:56.520 に答える