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来做的 这个有空可以看一下 


目录
相关文章
|
6月前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
77 0
|
6月前
|
Java Android开发
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
842 0
|
6月前
|
Android开发
Android 状态栏WiFi图标的显示逻辑
Android 状态栏WiFi图标的显示逻辑
160 0
|
3月前
|
Android开发
解决android apk安装后出现2个相同的应用图标
解决android apk安装后出现2个相同的应用图标
339 2
|
3月前
|
XML Android开发 数据格式
Android实战经验之Kotlin中快速实现动态更改应用图标和名称
本文介绍在Android中通过设置多个活动别名动态更改应用图标和名称的方法,涉及XML配置及Kotlin代码示例。
158 10
|
5月前
|
存储 Android开发
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
76 0
|
6月前
|
Java Android开发
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
111 1
|
5天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
7天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。