Development issue/problem:

I try to work around the different functions integrated in Android Material Design, but I can’t create this kind of animation if the view is filled with another one like this:

Do you know how to do it, whether a library or a project does it?

How can I solve this problem?

Solution 1:

I have tried to implement this system as part of API 21.

Add a multi-level dependency

Dependencies [
compiles ‘com.github.ozodrukh:CircularReveal : [email protected]’

My xml activity is


My activities in Java

The public class RevalAnimActivity extends ActionBarActivity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState) ;
setContentView(R.layout.activity_reval_anim) ;

Last ImageButton mFloatingButton = (ImageButton) findViewById(;mFloatingButton.setOnClickListener(new View.OnClickListener() {@Click(View v) {.

aimateButton(mFloatingButton) ;




private void animateButton (last ImageButton mFloatingButton) {

.translateX(-150). setDuration(300).setListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animation)) {
super.onAnimationEnd(animation) ;

It follows aimateReavel((int) mFloatingButton.getX(), 150,mFloatingButton);
}) ;


private void animateReavel(int cx, int cy, final ImageButton mFloatingButton) {

End image myView = findViewById( ;

// Let the final radius intersect circle
float finalRadius = hypo(myView.getWidth(), myView.getHeight());

SupportAnimator animator =
ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius);
animator.addListener(new SupportAnimator.AnimatorListener() {
public void onAnimationStart() {

public void onAnimationEnd() {
Toast.makeText(getApplicationContext(), Done, Toast.LENGTH_LONG)

public void onAnimationCancel() {

public void onAnimationRepeat() {
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.start() ;


static float hypo(int a, int b) {
return (float) Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));


Solution 2:

The solution to this problem is pathInterpolator, and the name of this effect is Curved Motion.

Animations in the material design are based on curves for
temporal interpolation and spatial motion models. Starting with Android 5.0 (API level 21), you can define custom time curves and motion models for animation.

You can see how you’re doing here:

And an example on GitHub HERE:

Good luck!

mobile app page transitions,screen transition meaning,material design transitions wpf,material design transitions css,navigation transitions css,android navigation animation slide,ux swipe indicator,touch gestures meaning,mobile touch gestures,swipe gesture android,swipe gesture lockdown browser,material design image selection,materialcontainertransform,material motion java,shared axis transition flutter,invalid transition types,shape appearance android,material design drawable,android crossfade animation,android view animation library,android:animatelayoutchanges,android-animation from gone to visible,fade in fade out animation android example,circular reveal animation android activity,animation in android github,how to create animation in android,android transition animation example,android moving image animation example,android animation duration,animation in android studio stack overflow,shared element transition android github,android shared transition image,custom shared element transition android,explode transition android,shared element transition not smooth,android activity transition animation github,container transform android example,material motion, inc,shared element transition – android,flutter hero listview,flutter hero animation not working,flutter hero animation same page,flutter animation examples,flutter animated positioned example,hero animation swift,material design paper,card vs paper material-ui,material-ui box,material grid,material react,material design icons,material design transitions,material design transitions android,android transition animation,android animation,material design navigation,material design guidelines