2016-08-08 12 views
1

パン、ズームなどのジェスチャ認識機能を持つImageViewがあります。ユーザが画像のある領域をズームしている。彼がボタンを押すと、親にImageViewというビュー(円など)を挿入したいと思います。ズームインエリア座標を取得する

ImageViewの特定の領域を拡大した後に、どのように領域の中心座標を取得したり、ズーム画像を表す矩形を得ることができるのだろうか。私は非常に簡単にMotionEventイベントを得ることができますが、私はズームインエリアの新しい座標を検出する方法を理解できません。ありがとうございました。

答えて

0

これはあなたが探しているものを「作物」といいます。画像を切り抜くためのライブラリがたくさんあります。いずれかを選択するか、問題の解決方法を確認してください。 Thereクロッピングライブラリを見つけることができます。

+0

私は実際に画像をトリミングする必要はありません。親ImageViewに別のビューを追加したい場合、私はいくつかの種類の座標を持つ必要があります。私はちょうどImageViewのズーム領域からいくつかの座標を取得したい。私はImageViewをズームしています。ズームした領域の中心を取得したいと思います。 –

+0

私がそこに言ったように:「または彼らがあなたの問題をどのように解決しているかを確認してください。任意のサードパーティの作物libのソースコードをチェックし、ズーム/トリミング領域の座標を取得する方法を確認してください。 –

0

PhotoViewを使用できます。変更された座標を返す属性setOnMatrixChangeListenerがあります。 すでに他のライブラリを利用している場合は、ライブラリを伝えるsame.Ifために利用可能ないくつかの属性が存在しなければならない、属性ここで

+0

これは私が使っているライブラリです。 onMatrixChanged()では、変更された新しい矩形を保存しますが、Naazは動作しません。 –

+0

Photoviewattacherのインスタンスが1つだけあることを確認します。そうであれば、決して座標を変更することはありません。 – Shazeen

+0

インスタンスが1つしかありません。私は、ディスプレイrect:mAttacher.getDisplayRect()を取得しようとし、その矩形のいくつかの処理を持っています –

0

を確認することができHackyViewPagerコード パブリッククラスHackyViewPagerはViewPager {

を拡張しています
private Context cont; 

private boolean enabled;

public HackyViewPager(Context context) { 
    super(context); 
    isLocked = false; 
    cont=context; 

} 

public HackyViewPager(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    cont=context; 

    this.enabled = true; 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    if (this.enabled) { 
     return super.onTouchEvent(event); 
    } 

    return false; 
} 

@Override 
public boolean onInterceptTouchEvent(MotionEvent event) { 
    try { 
     if (this.enabled) { 
      return super.onInterceptTouchEvent(event); 
     } else { 
      return false; 
     } 
    } catch (IllegalArgumentException e) { 
     e.printStackTrace(); 
     return false; 
    } 
} 

public void setPagingEnabled(boolean enabled) { 
    this.enabled = enabled; 
} 

}

関連する問題