我想做一个动画。它必须淡入淡出。
工作,但是,我必须使它无限。动画一次有效。
这是我的代码:
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator()); //add this
fadeIn.setDuration(1000);
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new AccelerateInterpolator()); //and this
fadeOut.setStartOffset(1000);
fadeOut.setDuration(1000);
final AnimationSet animation = new AnimationSet(false); //change to false
animation.addAnimation(fadeIn);
animation.addAnimation(fadeOut);
animation.setRepeatCount(Animation.INFINITE);
animation.setRepeatMode(Animation.REVERSE);
linearLayout.setAnimation(animation);
我正试图像这样解决:
但情况并非如此。我正在以编程方式做所有事情。
有人可以帮助我吗?
谢谢!
答案 0 :(得分:0)
试试这个:
动画淡入,缩小;
private void setAnimationOnPlayButton(){
fadeIn = AnimationUtils.loadAnimation(getActivity(), R.anim.fadeIn );
fadeOut = AnimationUtils.loadAnimation(getActivity(), R.anim.fadeOut );
btnPlayVideoInPlayer.setAnimation(fadeIn);
btnPlayVideoInPlayer.setAnimation(fadeOut);
btnPlayVideoInPlayer.startAnimation(fadeIn);
fadeIn .setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation arg0) {
btnPlayVideoInPlayer.startAnimation(zoomout);
}
});
fadeOut.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation arg0) {
btnPlayVideoInPlayer.startAnimation(fadeIn );
}
});
}
R.anim.fadein和R.anim.fadeout是anim文件夹中的动画文件
答案 1 :(得分:0)
我刚刚测试了这段代码,它的工作方式正是您想要的。
首先在src> main> res下创建一个名为anim的新的android资源目录。
然后创建一个新的动画资源文件并将其命名为anim_fade.xml。
将以下代码粘贴到其中。
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="1000" android:repeatMode="reverse"
android:repeatCount="infinite"/>
执行此操作后,转到您的java文件并在您的课程中启动动画。如果您希望它在应用程序启动时启动,请将其粘贴到onCreate方法中,如果您希望它在onClick或其他任何位置启动,请将其粘贴到该类中。
public void example{
//Major Animation code here
Animation fade = AnimationUtils.loadAnimation(this, R.anim.anim_fade);
linearlayout.startAnimation(fade);
}