Android界面 NotificationManager使用Bitmap做图标

时间:2023-06-13 11:59:42 

今天看到EOE问答里面有这“[Android 界面]NotificationManager 如何使用Bitmap做图标”这样一个问题,在论坛搜索也没有好的案例

特写一个简单的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

标签:NotificationManage,Bitmap图标
0
投稿

猜你喜欢

  • flutter ExpansionTile 层级菜单的实现

    2023-06-15 16:04:01
  • Spring Bean常用依赖注入方式详解

    2022-06-05 21:43:33
  • Android如何使用GestureDetector进行手势检测详解

    2022-03-21 22:08:46
  • springmvc实现json交互-requestBody和responseBody

    2023-02-26 17:10:45
  • Java 在游戏中探索数组二维数组

    2023-07-01 10:04:04
  • 如何利用Jenkins + TFS为.Net Core实现持续集成/部署详解

    2022-11-12 06:14:32
  • android 中 webview 怎么用 localStorage

    2023-04-28 04:38:36
  • Java ExecutorService四种线程池使用详解

    2023-05-17 07:12:56
  • 详解android使用ItemDecoration 悬浮导航栏效果

    2022-05-07 18:17:09
  • 教你使用springSecurity+jwt实现互踢功能

    2023-05-24 19:45:10
  • 通过Feign进行调用@FeignClient 找不到的解决方案

    2023-08-18 19:06:52
  • java中Cookie被禁用后Session追踪问题

    2023-10-17 13:44:32
  • spring security在分布式项目下的配置方法(案例详解)

    2022-12-26 03:45:49
  • Android中.9.png图片的使用及制作

    2023-04-05 02:50:36
  • 深入分析Android系统中SparseArray的源码

    2022-09-16 13:54:42
  • 字符串替换Replace仅替换第一个字符串匹配项

    2021-10-02 17:36:56
  • 创建动态代理对象bean,并动态注入到spring容器中的操作

    2021-09-04 01:02:43
  • springmvc后台基于@ModelAttribute获取表单提交的数据

    2023-08-05 12:29:35
  • C#中单例模式的三种写法示例

    2023-05-04 19:28:25
  • 一篇文章彻底弄懂Java中二叉树

    2023-04-08 12:47:30
  • asp之家 软件编程 m.aspxhome.com