[英]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.