2016-10-26 65 views
0

我的轉換不起作用,第一個圖像視圖顯示可繪製,但在運行動畫時,它只是以白色屏幕結束。不知道我錯過了什麼。共享元素轉換不工作,空白屏幕

主要佈局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<ImageView 
    android:id="@+id/main_image" 
    android:transitionName="@string/transition_string" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:src="@drawable/image"/> 
</RelativeLayout> 

第二活動佈局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<ImageView 
    android:id="@+id/second_image" 
    android:transitionName="@string/transition_string" 
    android:layout_width="match_parent" 
    android:layout_height="300dp"/> 
</RelativeLayout> 

主要活動

public class MainActivity extends AppCompatActivity { 

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

     findViewById(R.id.main_image).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       animate(); 
      } 
     }); 
    } 

    public void animate() { 
     Intent intent = new Intent(this, SecondActivity.class); 
     String transitionName = getString(R.string.transition_string); 
     View viewStart = findViewById(R.id.main_image); 
     ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, viewStart, transitionName); 
     ActivityCompat.startActivity(this, intent, options.toBundle()); 
    } 
} 

第二活動

public class SecondActivity extends AppCompatActivity { 

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

樣式

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 

    <item name="android:windowContentTransitions">true</item> 
</style> 
+0

我建議你看看這個github倉庫。它真的很好,並會幫助你很多.https://github.com/lgvalle/Material-Animations – Raghunandan

回答

2

添加SRC到second_image,如;

<ImageView 
android:id="@+id/second_image" 
android:transitionName="@string/transition_string" 
android:layout_width="match_parent" 
android:layout_height="300dp" 
android:src="@drawable/image"/> 
+0

太棒了,完全有效!但是,如果我使用glide或picasso等庫來設置第一個圖像視圖,該怎麼辦?在這些情況下我的源不是在xml中設置的? –

+0

然後,您需要再次在第二個活動上設置圖像視圖。您可以將相關位圖作爲字節數組傳遞。 [這裏是它的鏈接](http://stackoverflow.com/questions/11010386/send-bitmap-using-intent-android) 你也可以檢查答案,如果這對你有用。 :) –