我可以问一下是否可以创建一个没有淡入/淡出的alpha动画? 所以最终,它只会开启和关闭。
到目前为止我的代码片段:
imPreview.setImageDrawable(imgColorDotPreview);
Animation animationFlashing = new AlphaAnimation(1, 0); // Change alpha from fully visible to invisible
animationFlashing.setDuration(5000);
animationFlashing.setRepeatCount(Animation.INFINITE); // Repeat animation infinitely
animationFlashing.setRepeatMode(Animation.REVERSE);
imPreview.setAnimation(animationFlashing);
startAnimation();
我正在考虑另一种方式,即不使用AlphaAnimation,只是使用计时器直接将图像的alpha设置为0和1。但后来我需要无限制地做到这一点。
非常感谢任何帮助和建议!谢谢你们!
答案 0 :(得分:2)
您可以设置视图可见性:
view.setVisibility(View.VISIBLE);
view.setVisibility(View.INVISIBLE);
答案 1 :(得分:0)
好吧,我终于使用AlphaAnimation解决了我自己的问题。
我使用了setOnAnimationListener并在onRepeat()中更改了图像的Alpha。
imPreview.setImageDrawable(imgColorDotPreviewFlashing);
final Animation animationFlashing = new AlphaAnimation(1f,1f);
animationFlashing.setDuration(250); // duration - quarter a second
animationFlashing.setRepeatCount(Animation.INFINITE); // Repeat animation infinitely
animationFlashing.setRepeatMode(Animation.REVERSE);
animationFlashing.setAnimationListener(new AnimationListener(){
@Override
public void onAnimationEnd(Animation animation) {
if(animation == animationFlashing){
imPreview.setImageAlpha(255);
}
}
@Override
public void onAnimationRepeat(Animation animation) {
if(animation == animationFlashing){
if(imPreview.getImageAlpha()==0) imPreview.setImageAlpha(255);
else imPreview.setImageAlpha(0);
}
}
@Override
public void onAnimationStart(Animation animation) {
if(animation == animationFlashing){
imPreview.setImageAlpha(255);
}
}
});
imPreview.setAnimation(animationFlashing);
startAnimation();