Android Notification and icon issue
博客专区 > 球球 的博客 > 博客详情
Android Notification and icon issue
球球 发表于3年前
Android Notification and icon issue
  • 发表于 3年前
  • 阅读 15
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

摘要: Android的消息通知的图标必须要给大小两套,否则会出现ticker图标显示不全的问题。下面给出小图标的大小规格和实现。

notification icon must be 24x24 dp for optimal solution on most devices.

see

http://developer.android.com/design/style/iconography.html#notification

or create the following notification sizes:

  • 72x72px size in drawable-xxhdpi

  • 48x48px in drawable-xhdpi

  • 36x36px in drawable-hdpi

  • 24x24px in drawable-mdpi

  • 18x18px in drawable-ldpi

以上尺寸是给状态栏和提示滚动信息用图标尺寸。 下拉以后的大图标的尺寸就比较随意了。

下面是代码实现,用的是系统默认的布局。 旧写法:

        
        NotificationManager notificationManager = (NotificationManager)
                context.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = new Notification(icon, message, when);
        String title = context.getString(R.string.title);
        Intent notificationIntent = new Intent(context, LaunchActivity.class);
        // set intent so it does not start a new activity
        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
                Intent.FLAG_ACTIVITY_SINGLE_TOP);
        PendingIntent intent =
                PendingIntent.getActivity(context, 0, notificationIntent, 0);
        //Set the details of Notification 
        notification.setLatestEventInfo(context, title, message, intent);
        notification.tickerText = message;
        notification.defaults = Notification.DEFAULT_SOUND;
        notification.flags |= Notification.FLAG_AUTO_CANCEL;
        notification.icon=R.drawable.ticker_icon;
        BitmapFactory.Options opt = new BitmapFactory.Options();
        opt.inPurgeable = true;
        opt.inInputShareable = true;
        InputStream is = context.getResources().openRawResource(R.drawable.large_icon);
        Bitmap bitmap =  BitmapFactory.decodeStream(is, null, opt);
        notification.largeIcon= bitmap; 
        
        //The custom of notification
        /*RemoteViews contentView = new RemoteViews(context.getPackageName(),
                R.layout.notification);
        contentView
        .setImageViewResource(R.id.notification_image, R.drawable.large_icon);
        contentView.setTextViewText(R.id.notification_title, title);
        contentView.setTextViewText(R.id.notification_text, message);
        notification.contentView = contentView;*/
        
        //show Notification
        notificationManager.notify(id, notification);

共有 人打赏支持
粉丝 4
博文 88
码字总数 38732
×
球球
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: