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

我认为您错过了背景图像路径中的“..”。

/images/img1.png应该是: ../images/ img1.png

于 2012-07-30T10:22:20.603 回答
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 回答