我需要显示淡入淡出的图像按钮(以及出入淡出等...) 透明色可以使用setAlpha设置,但我怎样才能淡入淡出?我的意思是我不能在另一个线程上做,因为你需要在UI线程上做这样的事情,对吧?Android:淡入淡出视图
我想它可以用动画来完成,但我没有发现任何东西,因为我没有与任何动画体验,真的不知道该怎么寻找...
其实我真正想要的是褪色一个图像和另一个出来,但我想最简单的方法是将第一个图像按钮放置在第二个图像下方,然后淡入第二个图像。还是有更简单的方法来做到这一点?
我需要显示淡入淡出的图像按钮(以及出入淡出等...) 透明色可以使用setAlpha设置,但我怎样才能淡入淡出?我的意思是我不能在另一个线程上做,因为你需要在UI线程上做这样的事情,对吧?Android:淡入淡出视图
我想它可以用动画来完成,但我没有发现任何东西,因为我没有与任何动画体验,真的不知道该怎么寻找...
其实我真正想要的是褪色一个图像和另一个出来,但我想最简单的方法是将第一个图像按钮放置在第二个图像下方,然后淡入第二个图像。还是有更简单的方法来做到这一点?
这是我现在使用的解决方案,即在API级别低于12的工作原理:
AlphaAnimation anim = new AlphaAnimation(1.0f, 0.0f);
anim.setDuration(1000);
anim.setRepeatCount(NUM_REPEATS);
anim.setRepeatMode(Animation.REVERSE);
button.startAnimation(anim);
这是我们在我们的项目中使用的动画。微调是一个视图,所以你可以用你的imageview来改变它。所以确实在彼此之上有两个图像,一个是看不见的。这是我们如何做到的。希望能帮助到你。
spinner.setVisibility(View.VISIBLE);
spinner.setAlpha(0);
spinner.animate().setDuration(200).alpha(1).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
spinner.setVisibility(View.VISIBLE);
}
});
infoActivityContent.animate().setDuration(200).alpha(0).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
infoActivityContent.setVisibility(View.GONE);
mainPresenter.logout();
}
});
这也需要API级别12,我需要8个。无论如何,我会使用它,直到我找到别的东西。如果我想无限地淡入淡出(这意味着我需要从淡出动画结束侦听器中开始淡入淡出),它最终会导致内存溢出吗? – DominicM
没有,通常不应该是一个问题。它们都在不同的线程上运行,一旦第一个完成所有分配的内存将被释放。 –
实现动画类(您可以通过XML加载它或动态创建它)。
然后,您可以通过API setAnimation(动画动画)对其进行设置。
您可以演变成你的第二个像你的第一个图像的几个连续帧和背部,然后将它们定义为animation-list
和的onCreate
button_frames.xml启动动画:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/frame1" android:duration="100" />
<item android:drawable="@drawable/frame2" android:duration="100" />
....
布局:
<ImageView android:id="@+id/button"
android:background="@drawable/button_frames"/>
的OnCreate:
ImageView button= (ImageView)findViewById(R.id.button);
mAnimation = (AnimationDrawable) animationView.getBackground();
button.postDelayed(new Runnable() {
public void run() {
mAnimation.start();
}
}, 100);
您必须阅读Crossfading Two Views从Android developers
。在本教程中解释了如何做你想做的事情。
这看起来非常好,但它需要API等级12,我需要等级8(我忘了提及...) – DominicM
你可以使用动画,并创建您的阿尔法过渡动画'XML'文件,然后设置它到'ImageButton' – kabuto178