让你的应用"飘"起来!Android悬浮窗+自动吸边效果实战
重要注意事项1. 版本适配:Android 8.0+要用TYPE_APPLICATION_OVERLAY类型。2. 内存管理:记得在onDestroy里移除视图!3. 用户体验:拖动时可以考虑增加半透明效果。4. 权限提示:优雅地引导用户开启权限
先搞张"通行证"(权限篇)
在AndroidManifest里挂个牌子
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
这就像在游乐园门口挂了个"VIP通道"的牌子~
向用户申请"特别通行证"
// 检查是不是Android 6.0以上的"高级游乐园"if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // 看看通行证有没有过期 if (!Settings.canDrawOverlays(this)) { // 申请权限 Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())); startActivityForResult(intent, 1001); } else { showFloatingWindow(); // 亮出我们的悬浮窗! }}
图片
创建会"跑"的悬浮窗(核心实现)
悬浮窗基础配置
// 窗口管家(WindowManager)登场windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);// 给悬浮窗穿件"衣服"ImageView floatView = new ImageView(this);floatView.setImageResource(R.drawable.ic_float); // 悬浮窗的"身份证信息"WindowManager.LayoutParams params = new WindowManager.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY : // Android 8.0+用这个 WindowManager.LayoutParams.TYPE_PHONE, // 老版本用这个 WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, // 别抢焦点,做个安静的美窗 PixelFormat.TRANSLUCENT // 半透明效果更高级);// 初始位置:屏幕左上角+向下偏移100像素params.gravity = Gravity.START | Gravity.TOP;params.x = 0;params.y = 100;// 把悬浮窗"放"到屏幕上windowManager.addView(floatView, params);
图片
让悬浮窗"动"起来
floatView.setOnTouchListener(new View.OnTouchListener() { private int startX, startY; private float touchX, touchY; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // 手指按下 startX = params.x; startY = params.y; touchX = event.getRawX(); // 记录触点X touchY = event.getRawY(); // 记录触点Y return true; case MotionEvent.ACTION_MOVE: // 手指滑动 // 计算新位置 params.x = startX + (int)(event.getRawX() - touchX); params.y = startY + (int)(event.getRawY() - touchY); windowManager.updateViewLayout(floatView, params); return true; case MotionEvent.ACTION_UP: // 手指松开 autoAttachToEdge(); // 触发吸边效果 return true; } return false; }});
磁吸边效果实现(魔法时刻)
private void autoAttachToEdge() { int screenWidth = getResources().getDisplayMetrics().widthPixels; int viewCenterX = params.x + floatView.getWidth()/2; // 判断离哪边近 if(viewCenterX < screenWidth/2) { params.x = 0; // 吸到左边缘 } else { params.x = screenWidth - floatView.getWidth(); // 吸到右边缘 } // 添加弹性动画 ValueAnimator animator = ValueAnimator.ofInt(params.x, targetX); animator.addUpdateListener(animation -> { params.x = (int) animation.getAnimatedValue(); windowManager.updateViewLayout(floatView, params); }); animator.setDuration(300).start();}
图片
重要注意事项
1. 版本适配:Android 8.0+要用TYPE_APPLICATION_OVERLAY类型
2. 内存管理:记得在onDestroy里移除视图!
3. 用户体验:拖动时可以考虑增加半透明效果
4. 权限提示:优雅地引导用户开启权限
快来打造属于你的"桌面小精灵"吧!代码在手,创意我有,让你的应用瞬间拥有灵魂~
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
赠 439 元 AppleCare Services 服务:iPhone 17 Pro Max 京东 8999 元发车
京东自营 iPhone 17 Pro 系列开学大促继续,手慢无的300元换新券别忘了领 关注iPhone 17 Pro Max的朋友们注意了,这款上市价9999元的旗舰,今天在京东平台有个不容错过的“组合拳”优惠。核心就一句话:想拿到最大力度补贴,“以旧换新”是必选项。 直接来看最诱人的部分:通过以
Sharkoon 旋刚推出双模全配列机械键盘 OfficePal K70W
Sharkoon旋刚推出双模全配列机械键盘OfficePal K70W 机械键盘市场又添新选择。日前,Sharkoon旋刚正式发布了旗下新款双模全配列机械键盘——OfficePal K70W。这款产品为用户提供了段落有声和线性静音两种轴体选项,值得一提的是,无论是哪种轴体,官方标称的按键寿命都达到了
极摩客 EVO-T2 系列小主机 3 月 12 日发布:搭载英特尔酷睿 Ultra X9 388H / X7 358H,GMK claw 小龙虾开箱即用
3月12日见!英特尔携Panther Lake登场,极摩客EVO-T2系列小主机同步亮相 消息已经传来:英特尔正式官宣,将于明日(3月12日)下午14:00举行第三代英特尔酷睿Ultra处理器新品分享会。届时,一系列搭载最新Panther Lake架构处理器的PC新品将揭开面纱。 这场发布会的看点,
追觅芯际连发三款芯片:涵盖手机、自动驾驶等领域,单颗算力高达 2000 TOPS
追觅芯际连发三款芯片:涵盖手机、自动驾驶等领域,单颗算力高达2000 TOPS 3月11日下午,在“AWE 2026芯片产业高峰论坛”上,一个备受业界关注的动态浮出水面:追觅科技的生态企业“芯际穿越”首次系统披露了其业务蓝图。一系列瞄准前沿的芯片产品集中亮相,涵盖了从手机处理器、自动驾驶芯片,到个人
vivo X300s 新机搭载 7100mAh 蓝海电池:第四代硅负极技术,是 X 系列迄今最大电池容量
vivo X300s 新机搭载 7100mAh 蓝海电池:第四代硅负极技术,是 X 系列迄今最大电池容量 三月中旬,手机圈又迎来一波新机预热。近日,vivo产品经理韩伯啸率先揭开了X300s的关键特性之一:这款新机将搭载一块容量高达7100mAh的蓝海电池。这个数字意味着什么?它不仅是vivo X系
- 日榜
- 周榜
- 月榜
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

