简单实现3d touch

在应用图标上显示的快捷方式,该快捷方式可以点击进入Activity,长按拖动创建一个在Launcher上的图标。有点类似于苹果的3d touch,现在市场上已经是有很多应用增加了这项功能,如:印象笔记、支付宝、哔哩哔哩、IT之家、知乎、美团。于是自己怀着好奇,用动态代码也实现了一下,

1.设置ShortcutManager

@RequiresApi(api = Build.VERSION_CODES.N_MR1)
    private void setShortcutManager() {
        ShortcutManager mShortcutManager = (ShortcutManager) getSystemService(Context.SHORTCUT_SERVICE);
        //方便扩展,写成数组的方式
        ShortcutInfo[] mShortcutInfos = new ShortcutInfo[]{getOrdinaryShortcut()};
        mShortcutManager.addDynamicShortcuts(Arrays.asList(mShortcutInfos));
    }

2.构造快捷方式信息

 @RequiresApi(api = Build.VERSION_CODES.N_MR1)
    private ShortcutInfo getOrdinaryShortcut() {
        ShortcutInfo ordinary = new ShortcutInfo.Builder(this, "guahao")
                .setIntents(new Intent[]{new Intent(Intent.ACTION_VIEW).
                        setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
                        .setClass(this, MainActivity.class),
                        new Intent(Intent.ACTION_VIEW).setClass(this,
                                OrdinaryYuYueActivity.class)}
                )
                .setShortLabel(getResources().getString(R.string.guahao))
                .setLongLabel(getResources().getString(R.string.guahao))
                .setIcon(Icon.createWithResource(this, R.mipmap.push))
                .build();
        return ordinary;
    }

3.判断版本号,在合适的地方调用

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
            setShortcutManager();
        }

最终效果如图:


QQ图片20180531143129.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容