美文网首页
Android 使用网络图片当图标创建快捷方式(整理版本)

Android 使用网络图片当图标创建快捷方式(整理版本)

作者: 雨秋寒 | 来源:发表于2019-03-06 16:23 被阅读0次

本文使用ImageLoader下载网络图片

  • 首先获得下载到了loadedImage
  • 设置到创建快捷方式的Intent.EXTRA_SHORTCUT_ICON 这个是用来展示图标的
  • 快捷方式需要一个 Intent.EXTRA_SHORTCUT_INTENT,可以传递参数给目标intent
    /**
     * 创建团队快捷方式
     *
     * @param nickname
     */
    private void createShortCut(final String nickname) {

        //读取缓存团队小图
        ImageLoader.getInstance().loadImage(groupinfo.getgroup_avatar(), new ImageLoadingListener() {

            @Override
            public void onLoadingCancelled(String arg0, View arg1) {
            }

            @Override
            public void onLoadingStarted(String s, View view) {
            }

            @Override
            public void onLoadingFailed(String s, View view, FailReason failReason) {
            }

            @Override
            public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {

                if (hasShortcut(CompanyHomePageSettingActivity.this, nickname)) {
                    //检查桌面图标是不是已经存在 可以略过 判断方法在其他地方
                    XtomToastUtil.showShortToast(CompanyHomePageSettingActivity.this, "团队\"" + groupinfo.getNickname() + "\"已存在桌面快捷方式");

                } else {
                    //创建快捷方式
                    Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
                    //点击快捷方式需要的intent
                    Intent shortcutIntent = new Intent();
                    shortcutIntent.setAction("android.intent.action.gotogroup");
                    shortcutIntent.addCategory("android.intent.category.DEFAULT");
                    shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
                    shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
                    shortcutIntent.putExtra("groupidstr", groupinfo.getGroup_id());
                    shortcutIntent.putExtra("groupnamestr", groupinfo.getNickname());
                    shortcutIntent.putExtra("category", "grouphomepage");
                    shortcutIntent.putExtra("isfromshortcut", true);
                    shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
                    // 快捷方式名称
                    shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, nickname);
                    // 不允许重复创建(不一定有效)
                    shortcut.putExtra("duplicate", false);
                    if (isNull(groupinfo.getgroup_avatar())) {
                        // 快捷方式的图标
//                        Parcelable iconResource = Intent.ShortcutIconResource.fromContext(GroupHomePageSettingActivity.this,
//                                R.drawable.group_head);
//                        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
                        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, createBitmap(
                                BitmapFactory.decodeResource(getResources(), R.drawable.group_head),
                                BitmapFactory.decodeResource(getResources(), R.drawable.ic_group_avar)));
                    } else {

//                        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, loadedImage);
                        //添加水印
                        Bitmap resBit = BitmapFactory.decodeResource(getResources(), R.drawable.ic_group_avar);
                        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, createBitmap(loadedImage, resBit));
                    }

                    sendBroadcast(shortcut);

                }
            }
        });


    }

相关文章

网友评论

      本文标题:Android 使用网络图片当图标创建快捷方式(整理版本)

      本文链接:https://www.haomeiwen.com/subject/xphxpqtx.html