【问题标题】:Titanium notification (android toast) with image带有图像的 Titanium 通知(android toast)
【发布时间】:2012-06-19 08:59:16
【问题描述】:

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

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

但同样的问题。应用程序崩溃而不给出错误警报。有人知道如何在吐司中添加图像吗?

【问题讨论】:

    标签: titanium titanium-mobile


    【解决方案1】:

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

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

    【讨论】:

    • 没有你建议的答案也不起作用。你能在哪里展示你的代码吗?
    【解决方案2】:

    我通过以下函数解决了它。我已经根据我的要求决定了淡出时间(即总时间的 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));
        }   
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-05
      相关资源
      最近更新 更多