仿瓜子二手车价格选择控件(8)

接着需要对起始位置以及终点位置的边界进行处理,防止越界,两圆总不能滑出起始位置或者终点位置吧,其实对边界的处理还是很简单的,比如左边圆滑动坐标小于起始点的坐标时,我们就把起始点的坐标重新赋值给这个圆的圆心坐标,右边临界点的判断也是类似

[本文来自:www.11jj.com]

//防止越界处理
        if (touchLeftCircle) {
            if (leftCircleObj.cx > rightCircleObj.cx) {
                leftCircleObj.cx = rightCircleObj.cx;
            }else {
                if (leftCircleObj.cx < getPaddingLeft() + strokeRadius) {
                    leftCircleObj.cx = getPaddingLeft() + strokeRadius;
                } [本文来自:www.11jj.com]
                if (leftCircleObj.cx > getWidth() - getPaddingRight() - strokeRadius) {
                    leftCircleObj.cx = getWidth() - getPaddingRight() - strokeRadius;
                }
            }
        }else {
            if (leftCircleObj.cx > rightCircleObj.cx) {
                rightCircleObj.cx  = leftCircleObj.cx;
            }else {
                if (rightCircleObj.cx > getWidth() - getPaddingRight() - strokeRadius) {
                    rightCircleObj.cx = getWidth() - getPaddingRight() - strokeRadius;
                }

                if (rightCircleObj.cx < getPaddingLeft() + strokeRadius) {
                    rightCircleObj.cx = getPaddingLeft() + strokeRadius;
                }
            }
        }

以及两圆相遇时的处理,总不能确认过眼神就是对的人吧,,这块处理需要特别的注意,就像文章开头对控件的分析中说到的几种情况,①两圆在起始位置处相遇②两圆在终点位置处相遇③两圆在中间某一处相遇。对于情况①和②情况比较相似,这里就统一啰嗦下,滑动右边圆在起始位置处和左边圆相遇后,再次向右滑动,那么要保证左边圆不动,右边圆继续向右滑动;当左边圆在终点处与右边圆相遇时也是同样道理。对于情况③当滑动左边圆在中间某一处与右边圆相遇时,继续向右滑动,注意此时左边圆停留在之前右边圆的位置处不动,而右边圆则继续向右滑动(根据图二可以很清晰的观察出滑动的规律),用代码表示就是在 move 时进行判断处理

case MotionEvent.ACTION_MOVE:
                float moveX = event.getX();
                isShowRectDialog = true;
                if (leftCircleObj.cx == rightCircleObj.cx) {//两圆圈重合的情况
                    if (touchLeftCircle) {
                        //极端情况的优化处理,滑动左边圆到达最右边时,再次滑动时设置为左滑,即:继续让左边圆向左滑动
                        if (leftCircleObj.cx == getWidth() - getPaddingRight() - strokeRadius) {
                            touchLeftCircle = true;
                            leftCircleObj.cx = (int) moveX;
                        }else {
                            //当滑动左边圆在中间某处与右边圆重合时,此时再次继续滑动则左边圆处于右边圆位置处不动,右边圆改为向右滑动
                            touchLeftCircle = false;
                            rightCircleObj.cx = (int) moveX;
                        }
                    }else {
                        if (rightCircleObj.cx == getPaddingLeft() + strokeRadius) {
                            touchLeftCircle = false;
                            rightCircleObj.cx = (int) moveX;
                        }else {
                            touchLeftCircle = true;
                            leftCircleObj.cx = (int) moveX;
                        }
                    }
                }else {
                    if (touchLeftCircle) {
                        //滑动左边圆圈时,如果位置等于或者超过右边圆的位置时,设置右边圆圈的坐标给左边圆圈,就相当于左边圆圈停留在右边圆圈之前的位置上,然后移动右边圆圈
                        leftCircleObj.cx = leftCircleObj.cx - rightCircleObj.cx >= 0 ? rightCircleObj.cx : (int) moveX;
                    }else {
                        //同理
                        rightCircleObj.cx = rightCircleObj.cx - leftCircleObj.cx <= 0 ? leftCircleObj.cx : (int) moveX;
                    }
                }

                break;

自媒体 微信号:11jj 扫描二维码关注公众号
爱八卦,爱爆料。

小编推荐

  1. 1

    数字易经0到9代表什么卦(数字易经测算)

    大家好,小伟今天来为大家解答数字易经0到9代表什么卦以下问题,数字易经测算很多人还不知道,现在让我们一起来看看吧!1、数字1代表坎水、数

  2. 2

    苹果手机呼叫转移怎么设置(苹果手机呼叫转移怎么设置无法接通)

    大家好,小乐今天来为大家解答苹果手机呼叫转移怎么设置以下问题,苹果手机呼叫转移怎么设置无法接通很多人还不知道,现在让我们一起来看看

  3. 3

    中国红十字会标志简笔画(中国红十字会标志简笔画)

    大家好,小豪今天来为大家解答中国红十字会标志简笔画以下问题,中国红十字会标志简笔画很多人还不知道,现在让我们一起来看看吧!1、保护性

  4. 4

    八年级下册语文书人教版电子书(八年级下册语文书人教版电子书2022)

    大家好,小美今天来为大家解答八年级下册语文书人教版电子书以下问题,八年级下册语文书人教版电子书2022很多人还不知道,现在让我们一起来看

  5. 5

    古伊尔(魔兽古伊尔)

    大家好,小丽今天来为大家解答古伊尔以下问题,魔兽古伊尔很多人还不知道,现在让我们一起来看看吧!1、古伊尔是魔兽世界里面部落的一个酋长

  6. 6

    唯一极值点问题

    在高档数学的进修中,我们经常会碰着独一驻点的问题,在非常宽松的前提下,这个独一的驻点也就是极值点。今天我们稍微改变一下前提,商量如

  7. 7

    三公九卿制是什么(三公九卿制是什么朝代的制度)

    大家好,小乐今天来为大家解答三公九卿制是什么以下问题,三公九卿制是什么朝代的制度很多人还不知道,现在让我们一起来看看吧!1、三公九卿

  8. 8

    订房网哪个平台好(订房什么网最便宜)

    大家好,小娟今天来为大家解答订房网哪个平台好以下问题,订房什么网最便宜很多人还不知道,现在让我们一起来看看吧!1、携程、美团、艺龙、

Copyright 2024.依依自媒体,让大家了解更多图文资讯!