我有这个布局:
当我移动任何视图时,我想要检测此视图是否在另一个视图上,如果是,请调用swap
方法。
我希望在超过一半的第二个视图时执行此操作,如下例所示:
所有代码都已完成,我只是想检查何时视图从右侧或左侧超过半视图。我的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和位置