Animate ImageView from alpha 0 to 1

后端 未结 3 974
一向
一向 2021-01-27 21:21

I have an imageView that I want to start as invisible. After a certain button is clicked, I want to animate the Image into view and then I want it to remain at alpha 1. How do I

相关标签:
3条回答
  • 2021-01-27 21:47

    You can simply set initial alpha to 0 then animate it through 1 with desired duration;

    imageView.setAlpha(0);
    
    imageView.animate()
        .alpha(1)
        .setDuration(200);
    
    0 讨论(0)
  • 2021-01-27 21:52

    Try to make your ImageView invisible in xml:

    <ImageView
        ...
        android:visibility="invisible"/>
    

    Then, by adding an AnimationListener, make it visible in onAnimationStart:

    ...
    animation1.setFillAfter(true);
    animation1.setAnimationListener(new AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {
            // pass it visible before starting the animation
            tokenBtn.setVisibility(View.VISIBLE);
        }
    
        @Override
        public void onAnimationRepeat(Animation animation) {    }
        @Override
        public void onAnimationEnd(Animation animation) {    }
    });
    // finally, start the animation
    tokenBtn.startAnimation(animation1);
    
    0 讨论(0)
  • 2021-01-27 22:02

    In MainActivity.java add

    public void blink(View view) {
            ImageView image = (ImageView) findViewById(R.id.imageView);
            Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.blink);
            image.startAnimation(animation1);
        }
    

    Create file named blink.xml in res>anim folder and add this code

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <alpha android:fromAlpha="0.0"
            android:toAlpha="1.0"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:duration="--YOUR DURATION--"
            android:repeatMode="reverse"
            android:repeatCount="0"/>
    </set>
    

    And make sure that onClick function on button is named blink

    0 讨论(0)
提交回复
热议问题