Android Magnet:桌面删除APP自动弹出垃圾桶接受图标删除动作

在Android系统上,当用户长按桌面的图标后,会自动从底部或者顶部弹出一个垃圾或者叉子的删除图标,用户拖曳欲删除的图标至垃圾箱后,则在桌面删除该APP。

在github上一个第三方开源的项目:Magnet实现的就是上述类似功能。如图(图片来源自Magnet项目包)所示:

Magnet在github上的项目主页是:https://github.com/premnirmal/Magnet

Magnet实现相对简单,开发文档和代码例子比较易懂。Magnet给出的demo代码例子是由一个主Activity启动一个Service,主Activity启动后就finsh自己,然后由Service接管用户的拖曳删除动作。

启动Service的MainActivity:

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

public class ParanormalActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

startService(new Intent(this,MyService.class));

finish();

}

}

关键的代码章节(Service):

import android.app.Service;

import android.content.Intent;

import android.os.IBinder;

import android.util.Log;

import android.view.View;

import android.widget.ImageView;

import com.premnirmal.Magnet.IconCallback;

import com.premnirmal.Magnet.Magnet;

public class MyService extends Service implements IconCallback {

private static final String TAG = "Magnet";

private Magnet mMagnet;

@Override

public IBinder onBind(Intent intent) {

return null;

}

@Override

public void onCreate() {

super.onCreate();

ImageView iconView = new ImageView(this);

iconView.setImageResource(R.drawable.ic_launcher);

mMagnet = new Magnet.Builder(this)

.setIconView(iconView)

.setIconCallback(this)

.setRemoveIconResId(R.drawable.trash)

.setRemoveIconShadow(R.drawable.bottom_shadow)

.setShouldFlingAway(true)

.setShouldStickToWall(true)

.setRemoveIconShouldBeResponsive(true)

.build();

mMagnet.show();

}

@Override

public void onFlingAway() {

Log.i(TAG, "onFlingAway");

}

@Override

public void onMove(float x, float y) {

Log.i(TAG, "onMove(" + x + "," + y + ")");

}

@Override

public void onIconClick(View icon, float iconXPose, float iconYPose) {

Log.i(TAG, "onIconClick(..)");

mMagnet.destroy();

}

@Override

public void onIconDestroyed() {

Log.i(TAG, "onIconDestroyed()");

}

}

相关权限需要添加:

android 清理内存图标掉进垃圾桶的动画,Android Magnet:桌面删除APP自动弹出垃圾桶接受图标删除动作...相关推荐

  1. Android清理内存

    Android内存清理,利用ActivityManager获取当前正在运行的进程,清理这些进程释放内存. 可以根据importance的不同来判断前台或后台RunningAppProcessInfo ...

  2. android 清理内存图标掉进垃圾桶的动画,垃圾桶 icon 小动效

    一.步骤 1.添加背景:在时间轴面板右键---新建---纯色层 2.新建形状图层:选中矩形框---双击---新建一个画布大小的矩形,可以在矩形路径中改变其大小.圆角:想要改变其单个锚点,可以右键路径- ...

  3. android os能删掉那,安卓手机里的那些英文文件夹到底都是啥?可不可以删除?...

    原标题:安卓手机里的那些英文文件夹到底都是啥?可不可以删除? 对于使用安卓手机的强迫症患者来说,文件夹必须经常清理,尽管里面没有任何东西,也必须要彻底删除.虽然强迫症治好了,但总会不小心误删一些重要的 ...

  4. android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...

  5. android仿微信的activity平滑水平切换动画,android仿微信的activity平滑水平切换动画...

    大家好,下面我们来探讨一下微信界面跳转的动画,简单,大方,不失华丽:overridePendingTransition(android.R.anim.slide_in_left,android.R.a ...

  6. android仿微信的activity平滑水平切换动画,Android实现平滑翻动效果

    本文实例为大家分享了Android实现平滑翻动效果的具体代码,供大家参考,具体内容如下 效果 1.activity加implements implements GestureDetector.OnGe ...

  7. 【android开发】Android防止内存溢出浅析

    近期项目做得差点儿相同了,測试出现了一些问题,当中一个就是内存溢出问题,在三星手机上測试最easy出现内存溢出,在其它手机上,比方华为就没有发生,也是比較郁闷.这个问题在之前的公司,做项目时也遇到过, ...

  8. android防止内存溢出浅析

    Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M.但是Android采用的是Java语言编写,所以在很大程度上,Android的内存机制等同于Java的内存机制,在刚开始开 ...

  9. 读者变为用户,别掉进算法的“陷阱”

    本文转载自腾讯网 网络文艺对用户几乎没有门槛,加之突出的娱乐性,吸引网民汹涌加入.新华社发(王威摄) 5G技术革新带来万物互联.万物皆媒的未来传播图景.新华社记者 王全超摄 拍摄手工艺品视频.新华社记 ...

最新文章

  1. Unix网络编程 提高 TCP I/O 性能的3点经验
  2. 洪小文博士写给你的新年书单
  3. K8S Service服务用于对外暴露应用
  4. python orm框架sqlalchemy_python orm 框架中sqlalchemy用法实例详解
  5. Linux 安装Opencv3.2
  6. 跨站脚本攻击(selfxss)笔记(三)
  7. AOP与OOP的区别
  8. erlang mysql性能瓶颈,Erlang Mysql:如何防止SQL注入
  9. c# 路径下的最近文件夹_C#8.0的两个有趣的新特性以及gRPC
  10. 嵌入式linux移植ssh,将SSH移植到arm soc上
  11. 产品经理学习---人性七宗罪:打造完美产品的金钥匙
  12. 【HLSDK系列】服务端 AddToFullPack 函数
  13. Excel 中的日期格式变成时间戳
  14. 为什么要发明面向对象编程?
  15. 我的小米云端账号服务器,#小米开放云#免费云服务器安装Windows系统
  16. MTK手机刷机以及刷镜像
  17. OpenCV轮廓相关操作 C++
  18. 金蝶BOS 插件数据填充
  19. java捕鱼增值版游戏下载_捕鱼游戏 java
  20. 简单枚举 / 枚举排列

热门文章

  1. 关于计算机的名人名言英语,立春了 名人名言英语描写春天的句子
  2. JAVA毕设项目雁门关风景区宣传网站(java+VUE+Mybatis+Maven+Mysql)
  3. Python基础重点复习(2)
  4. 60句经典浪漫爱情语言
  5. 怎么看电脑的hdmi是输出还是输入_笔记本HDMI不知道是只支持输出还是支持输入...
  6. 打不开Godaddy.com网站和域名无法解析的解决方法
  7. scl语言用plc脉冲做定时器_PLC编程,如何学习SCL语言?SCL语言编程入门
  8. 【阿里云生活物联网架构师专题 ②】esp8266 sdk 直连接入阿里云物联网平台,实现天猫精灵找队友零配网功能和语音控制;
  9. 迅雷也可以批量下载电驴的电视剧!
  10. Feko加载电容方法学习笔记