如何将动画应用于整个 Android 列表视图
How to apply animations to entire Android Listview
我试图让 Listview 在某些情况下淡出 out/in。我在运行动画时遇到问题,Listview 只是变得不可见并且没有执行动画。
我试过运行 fade_out 动画:
Animation out = AnimationUtils.loadAnimation(mainActivity, R.anim.fade_out);
out.setInterpolator(new LinearInterpolator());
myListView.startAnimation(out);
以及 AlphaAnimation
AlphaAnimation animation1 = new AlphaAnimation(1f, .5f);
animation1.setDuration(2000);
animation1.setFillAfter(false);
myListView.startAnimation(animation1)
最后简单地设置 alpha
myListView.setAlpha(.5f)
我能说的最好的是列表视图不支持 alpha 透明度,只有 0 和 1 的值可用作 alpha。我找不到任何确认或否认任何方式的文件。
ListView 是否存在某种已知问题?难道我做错了什么?或者这是 ListView 上的某种有限功能?
试试吧's.If你想做的可见:
public void viseb_show(){
AnimationSet set = new AnimationSet(true);
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(500);
set.addAnimation(animation);
anim.startAnimation(animation);
anim.setVisibility(View.VISIBLE);
}
或者如果不可见
public void viseb_gone(){
AnimationSet set = new AnimationSet(true);
Animation animation = new AlphaAnimation(1.0f, 0.0f);
animation.setDuration(3500);
set.addAnimation(animation);
anim.startAnimation(animation);
anim.setVisibility(View.GONE);
}
anim
反对的是你visible
。
我解决了我的问题。 emigrantdd 几乎把我送到了正确的方向,但是我需要克服一些问题。
首先,我必须将 emigrantdd 的代码更改为:
public void viseb_gone()
{
AnimationSet set = new AnimationSet(false);
Animation fadeout= new AlphaAnimation(1.0f, 0.0f);
fadeOut.setInterpolator(new LinearInterpolator());
fadeOut.setDuration(3500);
set.addAnimation(animation);
myListView.startAnimation(fadeOut);
myListView.setVisibility(View.GONE);
}
因为插值器有问题。
我遇到的另一个问题是,我正在测试的 ListView 作为旧设计的一部分仍然在 ScrollView 中,一旦将其取出,它就会按照上述更改的预期工作。
我试图让 Listview 在某些情况下淡出 out/in。我在运行动画时遇到问题,Listview 只是变得不可见并且没有执行动画。
我试过运行 fade_out 动画:
Animation out = AnimationUtils.loadAnimation(mainActivity, R.anim.fade_out);
out.setInterpolator(new LinearInterpolator());
myListView.startAnimation(out);
以及 AlphaAnimation
AlphaAnimation animation1 = new AlphaAnimation(1f, .5f);
animation1.setDuration(2000);
animation1.setFillAfter(false);
myListView.startAnimation(animation1)
最后简单地设置 alpha
myListView.setAlpha(.5f)
我能说的最好的是列表视图不支持 alpha 透明度,只有 0 和 1 的值可用作 alpha。我找不到任何确认或否认任何方式的文件。
ListView 是否存在某种已知问题?难道我做错了什么?或者这是 ListView 上的某种有限功能?
试试吧's.If你想做的可见:
public void viseb_show(){
AnimationSet set = new AnimationSet(true);
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(500);
set.addAnimation(animation);
anim.startAnimation(animation);
anim.setVisibility(View.VISIBLE);
}
或者如果不可见
public void viseb_gone(){
AnimationSet set = new AnimationSet(true);
Animation animation = new AlphaAnimation(1.0f, 0.0f);
animation.setDuration(3500);
set.addAnimation(animation);
anim.startAnimation(animation);
anim.setVisibility(View.GONE);
}
anim
反对的是你visible
。
我解决了我的问题。 emigrantdd 几乎把我送到了正确的方向,但是我需要克服一些问题。
首先,我必须将 emigrantdd 的代码更改为:
public void viseb_gone()
{
AnimationSet set = new AnimationSet(false);
Animation fadeout= new AlphaAnimation(1.0f, 0.0f);
fadeOut.setInterpolator(new LinearInterpolator());
fadeOut.setDuration(3500);
set.addAnimation(animation);
myListView.startAnimation(fadeOut);
myListView.setVisibility(View.GONE);
}
因为插值器有问题。
我遇到的另一个问题是,我正在测试的 ListView 作为旧设计的一部分仍然在 ScrollView 中,一旦将其取出,它就会按照上述更改的预期工作。