NotificationManager 使用Bitmap做图标

自定义带倒影和偏转的超炫Gallery
http://www.eoeandroid.com/thread-236334-1-1.html

GPS封装类,封装了GPS细节,通过start和stop调用
http://www.eoeandroid.com/thread-236426-1-1.html

关于Zxing二维码扫描开灯的问题
http://www.eoeandroid.com/thread-235785-1-1.html

---------------------------帖子正文-------------------------

今天看到EOE问答里面有这“[Android 界面]NotificationManager 如何使用Bitmap做图标 http://www.eoeandroid.com/thread-230996-1-1.html ”这样一个问题,在论坛搜索也没有好的案例

特写一个简单的demo供大家参考


今天发布的是NotificationManager 使用Bitmap做图标

关键code

public void notification(int flag)
    {
      Notification notification = new Notification();
         //设置statusbar显示的icon
        notification.icon = R.drawable.icon;
   //设置statusbar显示的文字信息
  // myNoti.tickerText= new_msg ;
        notification.flags = Notification.FLAG_AUTO_CANCEL;
   //设置notification发生时同时发出默认声音
        notification.defaults = Notification.DEFAULT_SOUND;
        RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification);
        Bitmap bitmap=null;
        if(flag==0)
        {
         bitmap=drawableToBitmap(this.getResources().getDrawable(R.drawable.icon));
        }else
        {
         //此处是关键地方,可以从网络或是sdcard上获取图片,转成bitmap就可以
         bitmap=drawableToBitmap(this.getResources().getDrawable(R.drawable.alert_dialog_icon));
        }
        contentView.setImageViewBitmap(R.id.notification_icon, bitmap);
        contentView.setTextViewText(R.id.app_name, "Custom notification");
        notification.contentView = contentView;
        Intent intent = new Intent(this, MainActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent,
                        PendingIntent.FLAG_UPDATE_CURRENT);
        notification.contentIntent = contentIntent;
        
        //显示Notification
        Random random = new Random(new Date().getTime());
        mNotificationManager.notify(random.nextInt(1000000), notification);
    }
   
    //转化drawableToBitmap
    public static Bitmap drawableToBitmap(Drawable drawable)
{
  Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);
  Canvas canvas = new Canvas(bitmap);
  drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
  drawable.draw(canvas);
  return bitmap;
}

 

源码下载:NotificationIcon.rar


你可能感兴趣的:(NotificationManager 使用Bitmap做图标)