0

プレーンテキストメッセージではなく、トーストとして画像を表示したい。私が試してみました:

try{
  var toast = Titanium.UI.createNotification({
    duration: Ti.UI.NOTIFICATION_DURATION_LONG,
    background: '/images/img1.png'
  });
  toast.show();
}
catch (err)
{
  alert(err.message);
}

アラートを出さずにアプリケーションがクラッシュします。私も試しました:

try{
  var toast = Titanium.UI.createNotification({
    duration: Ti.UI.NOTIFICATION_DURATION_LONG,
    message: 'text',
  });
  toast.setBackgroundImage('/images/img1.png');
  toast.show();
}
catch (err)
{
  alert(err.message);
}

しかし、同じ問題。エラーアラートを出さずにアプリがクラッシュします。トーストでイメージを与える方法を知っている人はいますか?

4

2 に答える 2

0

以下の関数で解決しました。必要に応じてフェードアウト時間を決定しました (つまり、合計時間の 10%)。このコードは、戻るボタンが押されたイベントを手動で処理する必要がある場合があります。

var createImageToast = function (img, time)
{
    Ti.UI.backgroundColor = 'white';
    var win = Ti.UI.createWindow();
    var image = Ti.UI.createImageView({
      image: img,
    });
    win.add(image);
    win.open();
    setTimeout(function(){
        decreaseImageOpacity(win,image,1,parseInt(time/10));
    },parseInt(time*9/10));
}
var decreaseImageOpacity = function (win, image, opacity, time)
{
    if(opacity<=0)
    {
        win.close();
    }
    else
    {
        setTimeout(function(){
            image.setOpacity(''+opacity);
            decreaseImageOpacity(win,image,opacity-0.1, time);
        },parseInt(time/10));
    }   
}
于 2012-09-14T10:07:56.790 に答える
0

背景画像のパスで「..」を見逃したと思います。

/images/img1.pngは次のようになります: ../images/img1.png

于 2012-07-30T10:22:20.603 に答える