を作ってみました。
ソースコードは git に上げています。
サンプルプロジェクトとライブラリプロジェクトに分かれています。
これでスタンプ機能みたいなのが簡単に作れます。
ただし、Android4.0以上限定です、ごめんなさい。
まだ ImageView しかありません。
機能コピペすれば他のViewでもそのまま使えそうなので、そのうちTextViewとかも追加するつもりです。
扱いは普通の ImageView と変わりません。
対応ジェスチャ
以下3つのジェスチャーに対応しています。
- ドラッグ(DragGestureDetector.java)
- 2本指回転(RotateGestureDetector.java)
- ピンチイン・ピンチアウト(PinchGestureDetector.java)
Android既存のジェスチャ取得機構が全くもって役に立たないので、それぞれDetectorを自作しています。
導入
-
ライブラリプロジェクトをインポートするか
gesturetransformableview.jarを直接libsに突っ込んで下さい。 - 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( | )で加えれば、回転にも対応になります。