私は単純なカードゲームで作業しています。 私は単純にイメージビューであるカードスタックを持っています。私はカスタムカードオブジェクト(ビュー)を作成します。カードを動かすために、私はCardオブジェクトのonTouchEventメソッドをオーバーライドしました。作成直後にビューを移動する
質問は、スタックをタップしてカードを作成するとすぐにカードを移動するにはどうすればいいですか?私が最初にタップ(カードを作成)する必要がある瞬間、指を持ち上げてもう一度タップしてカードを動かしてください。
私は既にHow to programmatically trigger the touch event in android?を見たことがありますが、これはちょっとタッチイベントを誘発します。
活動
public void createCard(View v) {
if (mCardCounter < 4) {
Card card = new Card(this);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT));
layoutParams.setMargins(30, 30, 0, 0);
card.setLayoutParams(layoutParams);
mRootFrameLayout.addView(card);
mCardCounter++;
}
カード
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
dX = this.getX() - event.getRawX();
dY = this.getY() - event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
this.animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
}
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
の内側にあなたは私の提案を試してみましたか?それは動作しましたか? – Barns