Wie fülle ich eine Ansicht mit einem anderen mit Material Design Animation?

Ich versuche, um verschiedene Funktionalität mit Android Material Design integriert gehen, aber ich kann nicht diese Art von Animation zu tun, wenn eine Ansicht füllen ein anderes wie das:

Weißt du, wie man es macht oder eine Bibliothek / Projekt ein Beispiel, das das tut?

  • Android Drawable: Festlegung der Formbreite in Prozent in der XML-Datei?
  • Was ist ein Workaround für Chrome für Android falsche ClientX und ClientY Verhalten?
  • So erstellen Sie eine gemeinsame Bibliothek in Android
  • Standard-Aktionsleistenhöhe
  • Positionieren von Google Maps v2 Zoom in Kontrollen in Android
  • "Die Methode setListAdapter (ArrayAdapter) ist undefined für den Typ create"
  • Bildbeschreibung hier eingeben

  • Bild in Emulator-Galerie hochladen
  • Android-Speicher-Typen (RAM v Interner Speicher)
  • Native Android WebRTC Anwendungsentwicklung
  • NullPointerException in IabHelper.queryPurchases
  • Wie viele Datenbankspalten mit einer SMS in Android verbunden?
  • Wo bekomme ich die Android-Kamera-Anwendung Quellcode?
  • 2 Solutions collect form web for “Wie fülle ich eine Ansicht mit einem anderen mit Material Design Animation?”

    Ich habe versucht, dies nach API 21 zu implementieren

    Fügen Sie gradle Abhängigkeit hinzu

    dependencies { compile 'com.github.ozodrukh:CircularReveal:1.0.6@aar' } 

    Meine Aktivität xml ist

    Activity_reval_anim.xml

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".RevalAnimActivity"> <ImageView android:id="@+id/img_top" android:layout_width="match_parent" android:layout_height="200dp" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:background="@color/color_primary" android:src="@drawable/ala"/> <io.codetail.widget.RevealLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="200dp" android:layout_below="@+id/img_top" android:background="@color/color_primary"> <LinearLayout android:visibility="invisible" android:id="@+id/ll_reveal" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_accent" android:orientation="horizontal" ></LinearLayout> </io.codetail.widget.RevealLinearLayout> <ImageButton android:id="@+id/img_floating_btn" android:layout_width="60dp" android:layout_height="60dp" android:layout_alignParentRight="true" android:layout_marginRight="40dp" android:layout_marginTop="170dp" android:background="@drawable/expand_btn"/> </RelativeLayout> 

    Meine Tätigkeit Java ist

    RevalAnimActivity.java

     public class RevalAnimActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_reval_anim); final ImageButton mFloatingButton = (ImageButton) findViewById(R.id.img_floating_btn); mFloatingButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { animateButton(mFloatingButton); } }); } private void animateButton(final ImageButton mFloatingButton) { mFloatingButton.animate().translationXBy(0.5f).translationY(150).translationXBy(-0.9f) .translationX(-150). setDuration(300).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); animateReavel((int) mFloatingButton.getX(), 150,mFloatingButton); } }); } private void animateReavel(int cx, int cy, final ImageButton mFloatingButton) { final View myView = findViewById(R.id.ll_reveal); // get the final radius for the clipping circle float finalRadius = hypo(myView.getWidth(), myView.getHeight()); SupportAnimator animator = ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius); animator.addListener(new SupportAnimator.AnimatorListener() { @Override public void onAnimationStart() { mFloatingButton.setVisibility(View.INVISIBLE); myView.setVisibility(View.VISIBLE); } @Override public void onAnimationEnd() { Toast.makeText(getApplicationContext(), "Done", Toast.LENGTH_LONG) .show(); } @Override public void onAnimationCancel() { } @Override public void onAnimationRepeat() { } }); animator.setInterpolator(new AccelerateDecelerateInterpolator()); animator.setDuration(1000); animator.start(); } static float hypo(int a, int b) { return (float) Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)); } } 

    Die Lösung, um das zu tun, ist pathInterpolator und der Name dieses Effekts ist Curved Motion .

    Animationen im Materialdesign beruhen auf Kurven für Zeitinterpolation und räumliche Bewegungsmuster. Mit Android 5.0 (API Level 21) und höher können Sie benutzerdefinierte Timing Kurven und gekrümmte Bewegungsmuster für Animationen definieren.

    Sie können sehen, wie man es hier implementiert:

    http://developer.android.com/training/material/animations.html#CurvedMotion

    Und Probe auf GitHub HIER :

    Bildbeschreibung hier eingeben

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.