Android Magnet:桌面删除APP自动弹出垃圾桶接受图标删除动作
2018-01-04 00:00
501 查看
Android Magnet:桌面删除APP自动弹出垃圾桶接受图标删除动作
在Android系统上,当用户长按桌面的图标后,会自动从底部或者顶部弹出一个垃圾或者叉子的删除图标,用户拖曳欲删除的图标至垃圾箱后,则在桌面删除该APP。
在github上一个第三方开源的项目:Magnet实现的就是上述类似功能。如图(图片来源自Magnet项目包)所示:
![](https://static.oschina.net/uploads/img/201801/04145436_DCSD.jpg)
Magnet在github上的项目主页是:https://github.com/premnirmal/Magnet
Magnet实现相对简单,开发文档和代码例子比较易懂。Magnet给出的demo代码例子是由一个主Activity启动一个Service,主Activity启动后就finsh自己,然后由Service接管用户的拖曳删除动作。
启动Service的MainActivity:
关键的代码章节(Service):
相关权限需要添加:
Android Magnet:桌面删除APP自动弹出垃圾桶接受图标删除动作
在Android系统上,当用户长按桌面的图标后,会自动从底部或者顶部弹出一个垃圾或者叉子的删除图标,用户拖曳欲删除的图标至垃圾箱后,则在桌面删除该APP。
在github上一个第三方开源的项目:Magnet实现的就是上述类似功能。如图(图片来源自Magnet项目包)所示:
![](https://static.oschina.net/uploads/img/201801/04145436_DCSD.jpg)
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()"); } }
相关权限需要添加:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
相关文章推荐
- Android Magnet:桌面删除APP自动弹出垃圾桶接受图标删除动作
- android如何添加桌面图标和卸载程序后自动删除图标
- Android APP自动生成桌面快捷图标 启动方式有差异
- android如何添加桌面图标和卸载程序后自动删除图标
- 关于android无法修改app 桌面图标的问题
- android 如何将桌面较长的图标名称显示完整(有些APP的图标名称太长)
- android手机添加删除桌面图标和插件,设置壁纸
- 【Android】解决安装完 APK 后点打开然后回到桌面再点图标打开 APP 出现 activity 重建的问题
- Android 点击APP桌面图标启动时黑屏或者白屏
- Android桌面快捷方式图标生成与删除,使用Intent与launcher交互
- Android应用安装后打开,按Home键切出应用后再点击桌面图标返回导致应用重启问题及再次把app唤醒到前台
- Android App首次安装完成后在安装界面直接打开应用,再按home键返回桌面,从桌面图标重新进入app,返回不到之前的界面问题
- 创建桌面图标和删除桌面图标 android
- 如何在android桌面添加几个app图标做快捷方式?
- Android APP安装后不在桌面显示图标的应用场景
- Android 桌面上特定的图标不能被移动和删除
- android手机返回桌面后,点击app图标,app重启
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Android 利用 <activity-alias> 动态改变 App 桌面图标