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做图标)