防小米手机MIUI8悬浮球菜单插件代码下载
2016-07-21 12:49:55  By: dwtedx

本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

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+