当视图在另一个视图上时,android检测到

时间:2016-08-08 14:38:59

标签: android android-layout

我有这个布局:

enter image description here

当我移动任何视图时,我想要检测此视图是否在另一个视图上,如果是,请调用swap方法。

我希望在超过一半的第二个视图时执行此操作,如下例所示:

enter image description here

所有代码都已完成,我只是想检查何时视图从右侧或左侧超过半视图。我的xml代码:

<RelativeLayout
    android:id="@+id/mmmm"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:animateLayoutChanges="false"
    android:layout_gravity="center">



             <!-- first view -->

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_alignParentTop="true"
                android:layout_alignParentRight="true">

                <customfonts.RoundedImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/pro2"
                    android:layout_alignParentStart="false" />

                <customfonts.MyTextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/circulo"
                    android:text="1"
                    android:gravity="center_vertical|center_horizontal"
                   />
            </RelativeLayout>

            <!-- end first view -->

            <!-- second view -->

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_alignParentTop="true"
                android:layout_alignParentRight="true">

                <customfonts.RoundedImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/pro2"
                    android:layout_alignParentStart="false" />

                <customfonts.MyTextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/circulo"
                    android:text="1"
                    android:gravity="center_vertical|center_horizontal"
                   />
            </RelativeLayout>

            <!-- end secondview -->

            <!--  third view -->
            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_alignParentTop="true"
                android:layout_alignParentRight="true">

                <customfonts.RoundedImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/pro2"
                    android:layout_alignParentStart="false" />

                <customfonts.MyTextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/circulo"
                    android:text="1"
                    android:gravity="center_vertical|center_horizontal"
                   />
            </RelativeLayout>

            <!-- end third view -->

        </RelativeLayout>

我尝试了什么

          float x1 = v.getX();
          float w1 = v.getWidth();



          float x2 = m.getView().getX();
          float w2 = m.getView().getWidth();

         if((x1+w1 >= x2 &&  x2 > x1)  || (x1 >= (x2 + w2/2) && (x2 + w2) > x1)){


      Log.d("overlay now","index is "+m.getIndex());


       }

这个代码我尝试了但是我不知道它的问题是什么,它就像错误的x和位置

0 个答案:

没有答案