私がやりたいことは、PIXELS で複数のビューを特定の位置にアニメーション化することです! そのために TranslateAnimation を使用しています。ディスプレイの左上隅からアニメーション化したいと思います。これは、x: 0 と y:0 を可変位置にすると信じています。
private void drawGameField() {
TextView [] tvs = new TextView[10];
for(int i = 0; i < tvs.length; i++) {
tvs[i] = new TextView(this);
tvs[i].setX(i * 50);
tvs[i].setY(i * 50);
tvs[i].setText(i + "");
gamelayout.addView(tvs[i]); // relativelayout that is created in the onCreate method
animateObject(1000, tvs[i], 0, (int) tvs[i].getX(), 0, (int) tvs[i].getY());
}
}
private void animateObject(int time, TextView tv, int fromDeltaX, int toDeltaX, int fromDeltaY, int toDeltaY) {
Log.i("Animation", "Animating to: x: " + toDeltaX + ", y: " + toDeltaY);
TranslateAnimation t = new TranslateAnimation(fromDeltaX, toDeltaX,
fromDeltaY, toDeltaY);
t.setDuration(time);
tv.startAnimation(t);
}
私の問題は、アニメーションが本来あるべきことをしていないことです (アニメーションがアニメートするピクセルが入力と一致しない)、なぜですか? 私は何を間違っていますか?
animateObject メソッドで確認できるように、Logcat の出力は完全に正しく、ピクセルは私の欲求と一致しています。
LogCat の出力は次のとおりです。
Animation Animating to: x: 0, y: 0
Animation Animating to: x: 50, y: 50
Animation Animating to: x: 100, y: 100
Animation Animating to: x: 150, y: 150
Animation Animating to: x: 200, y: 200 ...