LoginSignup
52
48

More than 5 years have passed since last update.

【Android】移動・回転・拡縮できるView

Last updated at Posted at 2014-06-04

を作ってみました。

ソースコードは git に上げています。
サンプルプロジェクトとライブラリプロジェクトに分かれています。
これでスタンプ機能みたいなのが簡単に作れます。

ただし、Android4.0以上限定です、ごめんなさい。

まだ ImageView しかありません。
機能コピペすれば他のViewでもそのまま使えそうなので、そのうちTextViewとかも追加するつもりです。
扱いは普通の ImageView と変わりません。

対応ジェスチャ

以下3つのジェスチャーに対応しています。
1. ドラッグ(DragGestureDetector.java)
2. 2本指回転(RotateGestureDetector.java)
3. ピンチイン・ピンチアウト(PinchGestureDetector.java)

Android既存のジェスチャ取得機構が全くもって役に立たないので、それぞれDetectorを自作しています。

導入

  1. ライブラリプロジェクトをインポートするか gesturetransformableview.jarを直接libsに突っ込んで下さい。
  2. GestureTransformableImageViewを使うだけ!

xmlで宣言する場合は

 <jp.ogwork.gesturetransformableview.view.GestureTransformableImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/画像の名前" >

直接書いちゃう人は

ドラッグ・回転・拡縮全部有りはデフォルトでOK
 GestureTransformableImageView gestureImageView = new GestureTransformableImageView(context);

その他機能

  • 拡大縮小の制限

デフォルトでMAX270% / MIN 50% で設定されていますが、
setLimitScaleMax() / setLimitScaleMin() で設定可能です。

  • 対応ジェスチャを選ぶ
ドラッグと拡縮だけで良いよ、っていう人は
 GestureTransformableImageView gestureImageView = new GestureTransformableImageView(context,
                GestureTransformableImageView.GESTURE_DRAGGABLE |
                GestureTransformableImageView.GESTURE_SCALABLE );

デフォルトはドラッグ・回転・拡縮すべて有効ですが、部分指定も出来ます。
上に GestureTransformableImageView.GESTURE_ROTATABLE も同様にOR( | )で加えれば、回転にも対応になります。

52
48
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
48