[英]Animate View/Rect on creation?
我的onCreate方法中有以下代碼:
layout.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Paint p = new Paint();
field = new Token[FIELDSIZE][FIELDSIZE];
for (int i =0; i < FIELDSIZE ; i++) {
for (int j = 0; j < FIELDSIZE; j++) {
Token tmp = new Token(j, i, p, false, PlayActivity.this);
field[j][i] = tmp;
layout.addView(tmp);
}
}
我創建這個:
但是就在那兒,活動開始了。 我該如何制作動畫? 像一個又一個淡入淡出/飛起來的東西?
提前致謝
您應該嘗試一下:
layout.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Paint p = new Paint();
field = new Token[FIELDSIZE][FIELDSIZE];
for (int i =0; i < FIELDSIZE ; i++) {
for (int j = 0; j < FIELDSIZE; j++) {
Token tmp = new Token(j, i, p, false, PlayActivity.this);
field[j][i] = tmp;
// Make it invisible in the beginning
tmp.setAlpha(0);
layout.addView(tmp);
tmp.animate()
.alpha(1.0)
.setDuration(600)
.setStartDelay(100 + i * FIELDSIZE * 10 + j * 10);
}
}
您可以嘗試使用這些值,直到它們對您有利。 您也可以像下面這樣嘗試setScaleX和setScaleY:
tmp.setScaleX(0);
tmp.setScaleY(0);
然后再:
tmp.animate()
.scaleX(1.0)
.scaleY(1.0)
.setDuration(600)
.setStartDelay(100 + i * FIELDSIZE * 10 + j * 10);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.