0

Android ベースのアプリケーションにチタンの関数を使用します。

StoreImage: function(args,image){
        var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,DataStorage.GetImageFileName(args));
        if(f.exists()){
            var success = f.deleteFile();
        var msg = 'DataStorage.js : StoreImage : File Exists Deleting First | ';
            Ti.API.info((success==true) ? msg + 'success' : msg + 'fail'); // outputs 'success'
        }
        f.write(image);

        return f.nativePath; 
    }

image_detail と image をパラメーターとして取り、画像を携帯電話に保存します。この関数は画像をどこかに保存し、ネイティブパスを返します。つまりfile:///data/data/com.contingent.pcc/app_appdata/158664_584.png、この画像を画面に表示する必要がありますが、

var imgView = Ti.UI.createImageView({
        image : "file:///data/data/com.contingent.pcc/app_appdata/158664_584.png",
        width : 220,
        height : 220, //(newWidth/myImage.width)*myImage.height,
        top : 0
    });

imgView画面に画像が表示されない、ヘルプ

注:同じコードは iPhone にも適しています。

前もって感謝します。

4

2 に答える 2

1

ここに画像の説明を入力

画像が次の場所にある場合:

file:///data/data/com.contingent.pcc/app_appdata/maps.png

それから私は以下のようにしなければなりません:

//FirstView Component Constructor
function FirstView() {
    //create object instance, a parasitic subclass of Observable
    var self = Ti.UI.createView();

    //label using localization-ready strings from <app dir>/i18n/en/strings.xml
    var label = Ti.UI.createLabel({
        color : '#000000',
        top : 10,
        text : String.format(L('welcome'), 'Titanium'),
        height : 'auto',
        width : 'auto'
    });
    self.add(label);

    var _storage = Ti.Filesystem.applicationDataDirectory;
    var file = Ti.Filesystem.getFile(_storage, '/maps.png');

    var av_image = Titanium.UI.createImageView({
        image : file, // the image for the image view
        top : 20,
        height : 'auto',
        width : 'auto'
    });

    self.add(av_image);

    //Add behavior for UI
    label.addEventListener('click', function(e) {
        //alert(e.source.text);
        //alert(sdcardDir);
    });

    return self;
}

module.exports = FirstView;

于 2013-05-02T06:05:07.000 に答える
1

問題の原因を把握し、自分で修正しました。他の誰かが同じ問題を抱えている場合は、ここで共有してください。

問題は次のとおりでした:私はコードを使用していました

var image = event.media;
/***umair's code'**/
//var image = event.media;
Ti.API.info(image.width + ' x ' + image.height);
var imageView = Titanium.UI.createImageView({
image : image,
width : 375,
height : 500
});
image = imageView.toImage().media;
Ti.API.info(image.height + " x " + image.width);

画像のサイズ変更のため、ラインimage = imageView.toImage().media;ファイルがnullになり、表示されませんでした。私はちょうどこの行にコメントしました

//image = imageView.toImage().media;
//Ti.API.info(image.height + " x " + image.width);.

そしてすべてが順調です。

私を助けてくれたすべての人に感謝します。

于 2013-05-07T10:29:20.947 に答える