我有一个
RelativeLayout
ImageView
View
图片框
s与
视图
图片框
这样地:
<RelativeLayout
android:id="@+id/rootLayout"
android:layout_width="match_parent"
android:layout_height="300dp"
android:orientation="horizontal"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="106dp">
<ImageView
android:id="@+id/img1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/euqualizer"
android:scaleType="fitXY"
app:srcCompat="@mipmap/ic_launcher_round" />
<View
android:id="@+id/euqualizer"
android:layout_width="20dp"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:background="#000" />
<ImageView
android:id="@+id/img2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/euqualizer"
android:layout_alignParentRight="true"
android:scaleType="fitXY"
app:srcCompat="@mipmap/ic_launcher" />
</RelativeLayout>
在java代码中,我想根据触摸运动的方向移动视图的位置,即在视图上使用setX()。
这样地:
img1.setOnTouchListener(touchListener);
img2.setOnTouchListener(touchListener);
View.OnTouchListener touchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startDrag_X = event.getX();
break;
case MotionEvent.ACTION_MOVE:
float x_delta = event.getX() - startDrag_X;
euqualizer.setX(euqualizer.getX() + x_delta);
break;
case MotionEvent.ACTION_UP:
startDrag_X = -1;
break;
}
return true;
}
};
我做错什么了?