0
カスタムImageViewをいくつかの機能で作成しましたが、私の問題は実装のフローです。今、ビューにはドラッグ&ズーム機能があります。ここ はonTouchListenerです:Android:カスタムビューのonTouchListenerで実装されています
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
savedMatrix.set(matrix);
start.set(event.getX(), event.getY());
mode = DRAG;
break;
case MotionEvent.ACTION_POINTER_DOWN:
oldDist = spacing(event);
if (oldDist > 10f) {
savedMatrix.set(matrix);
midPoint(mid, event);
mode = ZOOM;
}
break;
case MotionEvent.ACTION_UP:
float[] values = new float[9];
matrix.getValues(values);
case MotionEvent.ACTION_POINTER_UP:
mode = NONE;
break;
case MotionEvent.ACTION_MOVE:
if (mode == DRAG) {
matrix.set(savedMatrix);
matrix.postTranslate((event.getX() - start.x),
(event.getY() - start.y));
} else if (mode == ZOOM) {
float newDist = spacing(event);
if (newDist > 10f) {
matrix.set(savedMatrix);
float scale = newDist/oldDist;
//SOME CODE
}
}
break;
}
invalidate();
return true;
}
私はリスナーに情事を検出し、スムーズな情事の後に行列を翻訳したいです。私の仕事のために働く解決策があれば、とても感謝しています。
をすることができますが、どのように私はXを設定する必要があり、YはonFling方法で表示する座標? – androidAnonDev
event1.getY()とevent2.getY()はあなたにXとYの座標を与えます – sadat
いいえ、私はイメージをスムーズに動かすことを意味します。 私の仕事はアンドロイドギャラリーのようにイメージビューを作成しています。 – androidAnonDev