2015-12-29 37 views
6

我有GridView,我想animation像谷歌播放商店。在這種情況下,當我們點擊任何應用程序時,它會重定向到其詳細信息頁面。那時候會發生一些動畫。我想爲我的GridView及其詳細信息頁面提供這種動畫。如果有人知道這種活動從一個班級轉到另一個班級,我需要幫助。活動動畫像谷歌播放商店

回答

6

這是從那裏你想要移動到細節篩選你的第一個活動代碼

import android.content.Intent; 
import android.os.Build; 
import android.os.Bundle; 
import android.support.v4.app.ActivityOptionsCompat; 
import android.support.v4.util.Pair; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 

public class StartActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_start); 
    } 

    public void onClick(View view) { 
     View imageView = findViewById(R.id.imageView); 
     View textView = findViewById(R.id.textView); 
     View button = findViewById(R.id.button); 

     Intent intent = new Intent(this, EndActivity.class); 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      textView.setTransitionName(getString(R.string.activity_text_trans)); 
      button.setTransitionName(getString(R.string.activity_mixed_trans)); 

      Pair<View, String> pair1 = Pair.create(imageView, imageView.getTransitionName()); 
      Pair<View, String> pair2 = Pair.create(textView, textView.getTransitionName()); 
      Pair<View, String> pair3 = Pair.create(button, button.getTransitionName()); 
      ActivityOptionsCompat options = ActivityOptionsCompat. 
        makeSceneTransitionAnimation(this, pair1, pair2, pair3); 
      startActivity(intent, options.toBundle()); 
     } 
     else { 
      startActivity(intent); 
     } 
    } 
} 

這是細節屏幕活動

import android.os.Build; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 

public class EndActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_end); 

     View smallImageView = findViewById(R.id.textView); 
     View editText = findViewById(R.id.editText); 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      smallImageView.setTransitionName(getString(R.string.activity_text_trans)); 
      editText.setTransitionName(getString(R.string.activity_mixed_trans)); 
     } 
    } 

} 

FirstActivity layouut文件

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="16dp"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="120dp" 
     android:layout_height="120dp" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/aa_logo_green" 
     android:transitionName="@string/activity_image_trans"/> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/imageView" 
     android:text="Simple TextView" 
     android:textSize="20sp"/> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/textView" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:text="Click Me" 
     style="@style/Widget.AppCompat.Button.Borderless" 
     android:onClick="onClick"/> 

</RelativeLayout> 

EndActivity XML佈局文件

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="16dp"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="220dp" 
     android:layout_height="220dp" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentBottom="true" 
     android:src="@drawable/aa_logo_green" 
     android:transitionName="@string/activity_image_trans"/> 

    <EditText 
     android:id="@+id/editText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentLeft="true" 
     android:hint="An EditText" 
     android:textSize="24sp"/> 

    <ImageView 
     android:id="@+id/textView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/imageView" 
     android:layout_alignBottom="@id/imageView" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentLeft="true" 
     android:src="@drawable/aa_logo_blue"/> 

</RelativeLayout> 
1

我想正是你想要的物質活動的事務,請閱讀本developer doc here 也試試這個lib中翻譯動畫https://github.com/lgvalle/Material-Animations

+0

這不是 「LIB」 。這是如何使用谷歌的[Android過渡框架](https://developer.android.com/training/transitions/overview.html)的解釋。而且太棒了! –

相關問題