使两个ImageViews重合缩放

时间:2015-09-15 09:56:35

标签: android imageview zoom

我在布局文件上有两个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上。因此,如果我在屏幕上移动缩放图像,则拖动图像必须保持在它离开的位置。

例如:

  1. 拖动移动到屏幕中心。
  2. 缩放放大
  3. 缩放向右移动,以便将拖动图像移到屏幕外
  4. 缩放移回到拖动图像停靠的中心
  5. 我希望你明白我想做什么

    亲切的问候!!

0 个答案:

没有答案