带图像的钛通知(android吐司)

时间:2012-06-19 08:59:16

标签: titanium titanium-mobile

我想将图像显示为吐司而不是纯文本消息。 我试过了:

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);
}

但同样的问题。应用程序崩溃而不提供错误警报。谁知道如何在吐司中提供图像?

2 个答案:

答案 0 :(得分:0)

我认为你在背景图片路径中错过了'..'。

/images/img1.png 应为: ../ images / img1.png

答案 1 :(得分: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));
    }   
}