防小米手机MIUI8悬浮球菜单插件代码下载
程序员文章站
2022-02-07 12:25:08
...
本Demo是一款仿小米MIUI8的桌面悬浮球功能、可以在MainActivity中调整悬浮球菜单的动画速度、但整体的动画效果还是没有MIUI8效果流畅、可以做为研究用、如果要使用到项目里面、还需要完善开发、下面是效果图
打开和关闭菜单操作
// 打开菜单操作 private void open() { // 判断菜单位置左边和右边打开方向不一样 if (tvx > 300) { yidong(tv1, tvx, tvy - ZHENG); yidong(tv2, tvx - XIE, tvy - XIE); yidong(tv3, tvx - ZHENG, tvy); yidong(tv4, tvx - XIE, tvy XIE); yidong(tv5, tvx, tvy ZHENG); } else { yidong(tv1, tvx, tvy - ZHENG); yidong(tv2, tvx XIE, tvy - XIE); yidong(tv3, tvx ZHENG, tvy); yidong(tv4, tvx XIE, tvy XIE); yidong(tv5, tvx, tvy ZHENG); } } // 关闭菜单操作 private void closed() { yidong(tv1, tvx, tvy); yidong(tv2, tvx, tvy); yidong(tv3, tvx, tvy); yidong(tv4, tvx, tvy); yidong(tv5, tvx, tvy); }
屏幕操作监听
@Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_MOVE: tFlag = true; x = event.getRawX(); y = event.getRawY() - 55; yidong(v, (int) x, (int) y); yidong(tv1, (int) x, (int) y); yidong(tv2, (int) x, (int) y); yidong(tv3, (int) x, (int) y); yidong(tv4, (int) x, (int) y); yidong(tv5, (int) x, (int) y); break; case MotionEvent.ACTION_UP: // tFlag避免长按事件未执行时(x,y值为0)移动到0位置 if (tFlag) { tFlag = false; // 松手时判断当前位置 // 保证菜单在左边或右边 // 保证打开时不会出现在屏幕外 int[] location = new int[2]; tv.getLocationOnScreen(location); tvx = location[0]; tvy = location[1]; // 上方位置限制 if (y < 200) { y = 200; } // 下方位置限制 if (tvy > winy - 200 - tv.getHeight()) { y = winy - tv.getHeight() - 200 - statusHeight; } // 如果x位置大于屏幕宽的一半最终位置在屏幕右边 if (x > (winx / 2 tv.getWidth() / 2)) { x = winx - (tv.getWidth()); } else { x = 0; } // 确定最终位置 yidong(v, (int) x, (int) y); yidong(tv1, (int) x, (int) y); yidong(tv2, (int) x, (int) y); yidong(tv3, (int) x, (int) y); yidong(tv4, (int) x, (int) y); yidong(tv5, (int) x, (int) y); } break; } return false; }
小米手机悬浮球源代码下载链接: 小米悬浮球下载 密码: 6xq2
上一篇: 上海感受 交通生活工作
下一篇: Android仿微信支付宝支付密码输入框