나는 간단한 카드 게임을 진행하고 있습니다. 나는 단순히 이미지 뷰인 카드 스택을 가지고있다. 만지면 사용자 지정 카드 개체 (보기)가 만들어집니다. 카드를 움직이려면 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