在创建时动画 View/Rect?
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);
}
}
它创建了这个:
但就在那儿,activity 出现了。
我怎样才能动画它?像一个接一个的fades/flys在什么的?
提前致谢
你应该试一试:
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);
我的 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);
}
}
它创建了这个:
但就在那儿,activity 出现了。 我怎样才能动画它?像一个接一个的fades/flys在什么的?
提前致谢
你应该试一试:
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);