1

カードをアニメーション化し、元の位置から移動して、別の事前定義されたイメージビューの上に着陸する必要があります (カードテーブルでのカードのスタックを表します)

    public static ImageView REFERENCE_IMAGE_FOR_ANIMATION;
REFERENCE_IMAGE_FOR_ANIMATION = (ImageView) findViewById(R.id.cardpile);

    public void deckButtonOnClick(View v) {
    ImageView imageView = new ImageView(getApplicationContext());
    imageView.setImageResource(DECK.takeCard());
    imageView.setAdjustViewBounds(true);
    imageView.setLayoutParams(PARAMS);
    imageView.setTag("0");
    imageView.setOnClickListener(new MyOnClickListener());

    ((LinearLayout) findViewById(R.id.innerLinearLayout))
            .addView(imageView);

}

私のコードMyOnClickListenerは次のとおりです。

public class MyOnClickListener{
Animation standardPosition = new TranslateAnimation(0, 0, 0, -25f);

@Override
public void onClick(View v) {
    Animation standardPosition;

    Animation risedPositionAndChosen;

    if (v.getTag().toString().equalsIgnoreCase("0")) {
        standardPosition = new TranslateAnimation(0, 0, 0, -25f);
        standardPosition.setDuration(400);
        standardPosition.setFillAfter(true);
        v.setTag("1");
        v.startAnimation(standardPosition);

    } else if (v.getTag().toString().equalsIgnoreCase("1")) {
        risedPositionAndChosen = new TranslateAnimation(
                Animation.RELATIVE_TO_SELF, 0,
                Animation.RELATIVE_TO_PARENT,    Game.REFERENCE_IMAGE_FOR_ANIMATION.getRight()
                - v.getRight(), Animation.RELATIVE_TO_SELF,
                0,Animation.RELATIVE_TO_PARENT, -Game.REFERENCE_IMAGE_FOR_ANIMATION.getTop());
        risedPositionAndChosen.setDuration(400);
        risedPositionAndChosen.setFillAfter(true);
        v.setTag("0");
        v.startAnimation(risedPositionAndChosen);

    } else if (v.getTag().toString().equalsIgnoreCase("2")) {

    }
    ((View) v.getParent()).invalidate();
}

}

OnClickListenerどうにかして変更する必要があるのは、私の中で最初の「else if」ステートメントです。

これREFERENCE_IMAGE_FOR_ANIMATION = (ImageView) findViewById(R.id.cardpile);は、「着地」する必要があるカードです。

ゲーム画面の私のレイアウトには、ネストされた が含まれScrollViewていLinearLayoutます。アニメーションが始まると、カードは階層の上位のレイアウトに「滑り込みます」。「上に浮かぶ」ためにはどうすればよいですか?

4

0 に答える 0