我在布局文件上有两个ImageView
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/root">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/zoom" />
<ImageView
android:layout_width="55dp"
android:layout_height="55dp"
android:id="@+id/drag"
android:layout_gravity="center_horizontal|top"
android:layout_alignParentTop="false" />
</RelativeLayout>
标识为ImageView
的{{1}}已实施PhotoViewAttacher,这使得zoom
可缩放。
ID = ImageView
的其他ImageView
有一个drag
:
OnTouchListener
因此拖动ImageView可在屏幕上移动。
我想要的是:如果我放大,拖动drag.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
//Definition MotionEvent.ACTION_MASK: Bit mask of the parts of the action code that are the action itself.
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
int i = lParams.leftMargin;
_xDelta = X - lParams.leftMargin;
_yDelta = Y - lParams.topMargin;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) v
.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = Y - _yDelta;
layoutParams.rightMargin = -250;
layoutParams.bottomMargin = -250;
v.setLayoutParams(layoutParams);
break;
}
viewGroup.invalidate();
return true;
}
});
也会被放大。缩小时的另一种方式相同。
如何以{&#34;停靠&#34;在缩放ImageView
上。因此,如果我在屏幕上移动缩放图像,则拖动图像必须保持在它离开的位置。
例如:
我希望你明白我想做什么
亲切的问候!!