android 添加快捷方式并且图标上添加数字

简介:
我们可以给桌面添加快捷方式的时候 制定一个带数字的图片 

 


1、添加一个方法 

Java代码   收藏代码
  1. private Bitmap generatorContactCountIcon(Bitmap icon){  
  2.         //初始化画布  
  3.         int iconSize=(int)getResources().getDimension(android.R.dimen.app_icon_size);  
  4.         Bitmap contactIcon=Bitmap.createBitmap(iconSize, iconSize, Config.ARGB_8888);  
  5.         Canvas canvas=new Canvas(contactIcon);  
  6.           
  7.         //拷贝图片  
  8.         Paint iconPaint=new Paint();  
  9.         iconPaint.setDither(true);//防抖动  
  10.         iconPaint.setFilterBitmap(true);//用来对Bitmap进行滤波处理,这样,当你选择Drawable时,会有抗锯齿的效果  
  11.         Rect src=new Rect(00, icon.getWidth(), icon.getHeight());  
  12.         Rect dst=new Rect(00, iconSize, iconSize);  
  13.         canvas.drawBitmap(icon, src, dst, iconPaint);  
  14.           
  15.         //在图片上创建一个覆盖的联系人个数  
  16.         int contacyCount=11;  
  17.         //启用抗锯齿和使用设备的文本字距  
  18.         Paint countPaint=new Paint(Paint.ANTI_ALIAS_FLAG|Paint.DEV_KERN_TEXT_FLAG);  
  19.         countPaint.setColor(Color.RED);  
  20.         countPaint.setTextSize(20f);  
  21.         countPaint.setTypeface(Typeface.DEFAULT_BOLD);  
  22.         canvas.drawText(String.valueOf(contacyCount), iconSize-1825, countPaint);  
  23.         return contactIcon;  
  24.     }  


上面
Java代码   收藏代码
  1. int contacyCount=11;  

这个是写死的 你可以在程序里面更具业务来控制 

2、修改方法: 

Java代码   收藏代码
  1. private void installShortCut(){  
  2.         Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");  
  3.         shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));  
  4.         // 是否可以有多个快捷方式的副本,参数如果是true就可以生成多个快捷方式,如果是false就不会重复添加  
  5.         shortcutIntent.putExtra("duplicate"false);  
  6.         Intent mainIntent = new Intent(Intent.ACTION_MAIN);  
  7.         mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);  
  8.   
  9.         // 要删除的应用程序的ComponentName,即应用程序包名+activity的名字  
  10.         //intent2.setComponent(new ComponentName(this.getPackageName(), this.getPackageName() + ".MainActivity"));  
  11.         mainIntent.setClass(thisthis.getClass());  
  12.   
  13.         shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mainIntent);  
  14.         //shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));  
  15.         shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, generatorContactCountIcon(((BitmapDrawable)(getResources().getDrawable(R.drawable.icon))).getBitmap()));  
  16.         sendBroadcast(shortcutIntent);  
  17.     }  



以前是根据id来找到图片 
Java代码   收藏代码
  1. shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));  


现在改为根据图片: 
Java代码   收藏代码
  1. shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, generatorContactCountIcon(((BitmapDrawable)(getResources().getDrawable(R.drawable.icon))).getBitmap()));  


这样既可 

但是 这样会不停的删除 创建快捷方式 更新太多 
网上貌似大家都是用widget来做的 这个有空可以看一下 


目录
相关文章
|
2月前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
14 0
|
17天前
|
Java Android开发
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
42 0
|
3天前
|
Android开发
Android 状态栏WiFi图标的显示逻辑
Android 状态栏WiFi图标的显示逻辑
17 0
|
1天前
|
Java Android开发
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
|
5月前
|
机器人 Android开发 数据安全/隐私保护
Android App 导出APK安装包以及制作App图标讲解及实战(图文解释 简单易懂)
Android App 导出APK安装包以及制作App图标讲解及实战(图文解释 简单易懂)
129 0
|
5月前
|
编解码 Android开发
用PS为网迅安卓公司设计基于安卓平台的手机应用图标
用PS为网迅安卓公司设计基于安卓平台的手机应用图标
|
10月前
|
XML API Android开发
Android长按图标展示快捷方式
这个特性,可以追溯到Android 7.1,也就是在7.1之后的系统,如果app支持,可以通过长按app图标展示一些快捷操作
127 0
|
7天前
|
存储 安全 Android开发
安卓应用开发:构建一个高效的用户登录系统
【5月更文挑战第3天】在移动应用开发中,用户登录系统的设计与实现是至关重要的一环。对于安卓平台而言,一个高效、安全且用户体验友好的登录系统能够显著提升应用的用户留存率和市场竞争力。本文将探讨在安卓平台上实现用户登录系统的最佳实践,包括对最新身份验证技术的应用、安全性考量以及性能优化策略。
|
10天前
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比