簡體   English   中英

android位圖翻譯動畫

[英]android bitmap translation animation

我正在開發西洋雙陸棋游戲。我使用canvas.drawBitmap繪制棋盤和棋子。 我想使用動畫將片段從一個位置移動到另一個位置。 我怎樣才能做到這一點? 我想我應該做某種翻譯動畫。 我可以使用位圖嗎? 謝謝。

檢查以下代碼以使ImageView動畫化:

final ImageView btnTranslate1 = (ImageView) findViewById(R.id.translate1);
Animation translateAnimation1 = new TranslateAnimation(0f, x, 0f, y);
translateAnimation1.setDuration(500);
translateAnimation1.setInterpolator(new CircInterpolator(Type.INOUT));

// start your animation with this line
btnTranslate1.startAnimation(translate1);

為作品創建全局位置坐標,並使用Animation更新它們。

Point positionOfPiece;

private static final int FINAL_X = 5;
private static final int FINAL_Y = 5;

private static final int INITIAL_X = 5;
private static final int INITIAL_Y = 5;

private class CustomAnimation extends Animation {

        @Override
        protected void applyTransformation(float interpolatedTime,
                Transformation t) {
            createLog("Updating");

            if (interpolatedTime == 0) {
                    positionOfPiece.set(INITIAL_X, INITIAL_Y);
            } else if (interpolatedTime == 1) {
                    positionOfPiece.set(FINAL_X, FINAL_Y); 
            } else {
                    positionOfPiece.set((1-interpolatedTime)*INITIAL_X + interpolatedTime*FINAL_X, (1-interpolatedTime)*INITIAL_Y + interpolatedTime*FINAL_Y);
            }
            postInvalidate();
            super.applyTransformation(interpolatedTime, t);
        }

    }

此處的內插時間將在0到1之間變化(*不完全取決於內插器)。

根據您的持續時間和動畫插值器。

mAnimation = new CustomAnimation();
mAnimation.setDuration(mDuration);
mAnimation.setInterpolator(mInterpolator);
startAnimation(mAnimation);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM