gpt4 book ai didi

android - 带有动画监听器的匿名动画

转载 作者:行者123 更新时间:2023-11-29 20:59:24 25 4
gpt4 key购买 nike

我想要一个带有动画监听器的匿名动画。我想要实现的是动态创建一个动画类型并为其设置动画监听器,它将根据参数隐藏或显示 View 。以下是我的听众。

public class MyAnimationListener implements AnimationListener
{

private LinearLayout mLinerLayout;
private int mVisibility;

public MyAnimationListener(LinearLayout l,int visiblity) {
mLinerLayout = l;
mVisibility = visiblity;
}

@Override
public void onAnimationStart(Animation animation)
{}

@Override
public void onAnimationRepeat(Animation animation)
{}

@Override
public void onAnimationEnd(Animation animation)
{
mLinerLayout.setVisibility(mVisibility);
}
}

我想做一些事情,比如在我可以为我的监听器分配匿名动画的地方

lnrLayoutWebsite.startAnimation(/*new Animation(){with my listener here}*/);

我知道我本可以完成以下工作并取得结果。但是假设我有 20 个 View ,我需要为其创建一些匿名动画。

slideUp = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_up);
slideUp.setAnimationListener(new MyAnimationListener(lnrLayoutWebsite, View.GONE));
lnrLayoutWebsite.startAnimation(slideUp);

我怎样才能实现我上面描述的目标?

最佳答案

你不能用匿名语句来做到这一点。你可以做的是创建一个像这样的辅助方法:

public static Animation createAnimation() {    
Animation slideUp = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_up);
slideUp.setAnimationListener(new MyAnimationListener(lnrLayoutWebsite, View.GONE));
return slideUp;
}

然后像这样添加新的动画:

lnrLayoutWebsite.startAnimation(createAnimation());

这还具有能够通过传入参数轻松修改动画的优势,以便根据需要更改某些内容。或者简单地更改返回的整个动画。

关于android - 带有动画监听器的匿名动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26617600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com