4

我想让进度条随着淡入淡出而消失。我已经在其他应用程序上看到了这一点,比如著名的 SuperSU。

但我不知道该怎么做。

编辑:这是我所做的:

AlphaAnimation fadeOut = new AlphaAnimation(1.0f, 0.0f);
fadeOut.setDuration(500);
fadeOut.setFillAfter(true);
progressBar.startAnimation(fadeOut);
progressBar.setVisibility(ProgressBar.GONE);

listview.setAdapter(new MyAdapter(getApplicationContext(), listGroups, listChildren));

listview.setVisibility(ListView.VISIBLE);
AlphaAnimation fadeIn = new AlphaAnimation(0.0f, 1.0f);
fadeIn.setDuration(500);
fadeIn.setFillAfter(true);
listview.startAnimation(fadeIn);

当我开始另一个意图然后返回时,有时(这很奇怪,它似乎是随机的)进度条位于列表视图上方并且被冻结(没有动画)。

没有人能帮助我吗?:(我试过这个:

@Override
protected void onResume() {
    super.onResume();

    if(listview.getVisibility() == ListView.VISIBLE)
        progressBar.setVisibility(ProgressBar.GONE);
}

它没有用,我仍然让进度条冻结在列表视图的中间......

4

2 回答 2

8
AlphaAnimation fadeOutAnimation = new AlphaAnimation(1.0f, 0.0f);//fade from 1 to 0 alpha
fadeOutAnimation.setDuration(1000);
fadeOutAnimation.setFillAfter(true)//to keep it at 0 when animation ends
myProgressBar.startAnimation(fadeOutAnimation);
于 2012-09-09T22:17:24.833 回答
4

progress bar 是一个View,views 可以使用Animations,你在找AlphaAnimation

创建和启动淡入淡出动画:

AlphaAnimation fadeOut;
fadeOut = new AlphaAnimation(1,0); //fade out animation from 1 (fully visible) to 0 (transparent)
fadeOut.setDuration(1000); //set duration in mill seconds
fadeOut.setFillAfter(true);
progresBar.startAnimation(fadeOut);
于 2012-09-09T22:21:58.727 回答