私は、いくつかのImageViewを含むFrameLayoutを持っています。メインアクティビティでは、FrameLayoutと画像を指でドラッグ(ドラッグ)するために、タッチイベントを記録します。Android:click/touchイベントがキャンバスの後に動作しない翻訳する
これを行うには、activity touchイベントハンドラでinvalidate()によって呼び出されるframelayoutのonDrawの中でcanvas.translate(x、y)を呼び出しています。
翻訳後、ImageViewをクリックすることができない点を除いて、すべてが魅力的です。実際、各画像のクリックリスナーは翻訳前の元の場所にあります。
翻訳後に各イメージのレイアウトを手動で更新する必要がありますが、それを行うにはどうすればよいですか?変換値で余白を変更すると、画像はさらに2回表示されます...
私は本当にその1つの助けに感謝します。
乾杯。
ここでは、onDraw()メソッドでキャンバスを変換するframeLayout(メインアクティビティのFrameLayoutにImageViewが追加されています)です。
public class TopView extends FrameLayout {
public float mPosX = 0;
public float mPosY = 0;
public TopView(Context context)
{
super(context);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(1920, 3200, Gravity.CENTER);
this.setLayoutParams(lp);
setWillNotDraw(false);
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.translate(this.mPosX, this.mPosY);
}
}