安卓动画阿尔法

2022-08-31 11:40:12

我有动画:

<set xmlns:android="http://schemas.android.com/apk/res/android"  
   android:interpolator="@android:anim/linear_interpolator">  
   <alpha  
       android:fromAlpha="0.2"  
       android:toAlpha="1.0"  
       android:duration="500"/>  
</set>

和:ImageView

<ImageView
    android:id="@+id/listViewIcon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/settings" 
    android:alpha="0.2"/>  

和代码:

final Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha);
final ImageView iv = (ImageView) findViewById(R.id.listViewIcon);
anim .setFillAfter(true);
iv.startAnimation(anim);

所以一开始我和阿尔法在一起,最后我想和阿尔法在一起。但它不是那样工作的 - 当动画开始时,会添加更多的alpha,动画以alpha结束。ImageView0.2ImageView10.2

我必须更改哪些内容才能将图像从上到?0.21

我已经检查了不同的设置 - 我设置了,它像我预期的那样工作 - 从alpha到.看起来阿尔法从乘以阿尔法从动画...android:alpha="1.0"fromAlpa="1.0"toAlpha="0.2"10.2ImageView


答案 1

试试这个

AlphaAnimation animation1 = new AlphaAnimation(0.2f, 1.0f);
animation1.setDuration(1000);
animation1.setStartOffset(5000);
animation1.setFillAfter(true);
iv.startAnimation(animation1);

答案 2

可能有点晚了,但在Android文档中找到了一个可爱的解决方案

//In transition: (alpha from 0 to 0.5)
view.setAlpha(0f);
view.setVisibility(View.VISIBLE);
view.animate()
   .alpha(0.5f)
   .setDuration(400)
   .setListener(null);

//Out transition: (alpha from 0.5 to 0)
view.setAlpha(0.5f)
view.animate()
   .alpha(0f)
   .setDuration(400)
   .setListener(new AnimatorListenerAdapter() {
           @Override
           public void onAnimationEnd(Animator animation) {
           view.setVisibility(View.GONE);
         }
    });

推荐