创建快捷方式:我如何使用drawable作为图标进行工作?
创建快捷方式:我如何使用drawable作为图标进行工作?
以下是我创建选定应用程序的快捷方式的代码。我真的没有问题,应用程序运行得很好。\n问题是我能够使用我的应用程序资源创建一个快捷方式:\n
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));
\n但我真的想要使用一个自定义的可绘制对象。 ( Drawable myDrawable=.....)\n我该怎么办?\n
ResolveInfo launchable=adapter.getItem(position); final Intent shortcutIntent = new Intent(); ActivityInfo activity=launchable.activityInfo; ComponentName name=new ComponentName(activity.applicationInfo.packageName,activity.name); shortcutIntent.setComponent(name); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); final Intent intent = new Intent(); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); // 设置自定义快捷方式的标题 intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, launchable.loadLabel(pm)); // 设置自定义快捷方式图标 intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon)); // 添加快捷方式 intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); sendBroadcast(intent); finish();
\n非常感谢任何线索。
问题的出现原因:使用代码创建一个快捷方式时,图片没有正确缩放到快捷方式图标的大小。
解决方法:
1. 获取快捷方式图标的正确大小:参考链接https://stackoverflow.com/a/19003905/3741926
2. 使用之前计算出的大小来缩放drawable:参考链接https://stackoverflow.com/a/10703256/3741926
通过以上两个方法,可以得到一个具有正确缩放图标的快捷方式。希望对你有所帮助。