ビューがあり、指で動かしたい。xDelta と yDelta を取得し、ビューのマトリックスを変換したかっただけです (画像ビューではなく、任意のビュー、RelativeLayout など)。私はそれを行う方法を疑問に思っています:
- RelativeLayout の onDraw をオーバーライドし、そこに変換マトリックスを適用します。それは可能ですか?
- 私は現在、各 onTouch イベントにアニメーションを適用してそれを行っています。アニメーションの持続時間は 0 で、x/y の開始/終了は同じです (setFillAfter = true)。必要な場所にビューを配置するだけです。でもそれって高くないですか?
onDraw を介してビューのマトリックスを直接操作することはできませんか? 私はこのようなことを試しました:
@Override
protected void onDraw(Canvas canvas) {
if (getDx() != 0 && getDy() != 0) {
m = canvas.getMatrix();
m.postTranslate(dx, dy);
canvas.setMatrix(m);
}
super.onDraw(canvas);
}
しかし、私はそれを間違っているようです。