我有一个listView,6 itemRows淡入(动画)onStart。
我希望它们能够逐渐消失,但作为一个新手最终会像这样做。 Timer和handler方法似乎还可以,但是在200ms的时间间隔之后无法分别完成六个视图。
请有人建议更好的方法。
private void doLVAnimIndicator() {
mLevelslist.postDelayed(new Runnable() {
public void run() {
mLevelslist.getChildAt(0).setBackgroundResource(R.drawable.indicator_bg_btn);
mLevelslist.getChildAt(1).setBackgroundResource(R.drawable.indicator_bg_btn);
mLevelslist.getChildAt(2).setBackgroundResource(R.drawable.indicator_bg_btn);
mLevelslist.getChildAt(3).setBackgroundResource(R.drawable.indicator_bg_btn);
mLevelslist.getChildAt(4).setBackgroundResource(R.drawable.indicator_bg_btn);
mLevelslist.getChildAt(5).setBackgroundResource(R.drawable.indicator_bg_btn);
}
}, 160);
mLevelslist.postDelayed(new Runnable() {
public void run() {
mLevelslist.getChildAt(5).setBackgroundResource(R.color.outline);
}
}, 1300);
mLevelslist.postDelayed(new Runnable() {
public void run() {
mLevelslist.getChildAt(4).setBackgroundResource(R.color.outline);
}
}, 1375);
mLevelslist.postDelayed(new Runnable() {
public void run() {
mLevelslist.getChildAt(3).setBackgroundResource(R.color.outline);
}
}, 1450);
mLevelslist.postDelayed(new Runnable() {
public void run() {
mLevelslist.getChildAt(2).setBackgroundResource(R.color.outline);
}
}, 1525);
mLevelslist.postDelayed(new Runnable() {
public void run() {
mLevelslist.getChildAt(1).setBackgroundResource(R.color.outline);
}
}, 1600);
mLevelslist.postDelayed(new Runnable() {
public void run() {
mLevelslist.getChildAt(0).setBackgroundResource(R.color.outline);
}
}, 1675);
return;
}
答案 0 :(得分:0)
使用AlphaAnimation和View.startAnimation方法为视图设置动画。
for (int i = 0; i < 6; i++) {
AlphaAnimation a = new AlphaAnimation(1, 0);
a.setDuration(<duration>)
a.setStartOffset(i * duration + i * offset);
mLevelslist.getChildAt(i).startAnimation(a);
}