我一直在努力嘗試使我的sharedELementTransitions工作得很好而且流暢。但我有一個問題,我的ImageView跳轉,並不能正確縮放返回動畫。 Example我試圖儘可能多地複製預先存在的Android項目,甚至使用幾乎相同的代碼運行完美動畫的項目,而且似乎沒有任何解決方法。有沒有人有類似的問題?如果是這樣,你是如何解決它的?2個活動之間的SharedElementTransition未正確動畫
2
A
回答
2
檢查該解決方案是爲我工作(無論退出和返回的轉變正在)
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ListView listview = (ListView) findViewById(R.id.listView);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ImageView imageView = (ImageView) view.findViewById(R.id.imageListItem);
TextView textView = (TextView) view.findViewById(R.id.DummyText);
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
Pair<View, String> p1 = Pair.create((View) textView, "newTrans");
Pair<View, String> p2 = Pair.create((View) imageView, "profileAnimation");
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(MainActivity.this, p1, p2);
startActivity(intent, optionsCompat.toBundle());
}
});
listview.setAdapter(new DummyAdapter());
}
private class DummyAdapter extends BaseAdapter {
@Override
public int getCount() {
return 20;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, parent, false);
}
return convertView;
}
}
}
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
android:fitsSystemWindows="true"
tools:context="com.hb.androidlanimations.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/colorPrimary"
android:dividerHeight="2dp"></ListView>
</android.support.design.widget.CoordinatorLayout>
list_item.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="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<ImageView
android:id="@+id/imageListItem"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background="@drawable/ic_launcher"
android:transitionName="profileAnimation" />
<TextView
android:id="@+id/DummyText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="DummyText"
android:transitionName="newTrans" />
</RelativeLayout>
SecondActivity.java
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
}
activity_second.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:background="#FFFFFF"
android:paddingTop="30dp">
<ImageView
android:id="@+id/imgMain"
android:layout_width="125dp"
android:layout_height="125dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/ic_launcher"
android:transitionName="profileAnimation" />
<TextView
android:id="@+id/DummyActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Dummy Text"
android:transitionName="newTrans" />
</RelativeLayout>
使用你的風格里面的檔案:
<item name="android:windowContentTransitions">true</item>
+0
謝謝你似乎smy問題是,我使用SubSamplingImageView不是一個實際的圖像視圖,所以它沒有動畫的邊界的變化 –
相關問題
- 1. 兩個活動之間的動畫
- 2. 兩個活動之間的動畫
- 3. 正確傳遞活動之間的值
- 4. 活動和另一個活動之間的動畫過渡
- 5. Fllip動畫兩者之間的活動
- 6. 掛在活動之間的動畫
- 7. 動畫活動之間的Android C#Xamarin
- 8. 2個div之間的動畫
- 9. 2個動畫之間的延遲
- 10. 2個活動之間的進度條
- 11. 在活動之間放大動畫
- 12. 禁用過渡動畫活動之間
- 13. 使用動畫集的活動之間的過渡動畫
- 14. 動畫未正確開始
- 15. Android活動與活動組之間的翻轉動畫
- 16. jQuery動畫未能正確動作
- 17. onPostExecute未正確啓動活動
- 18. BroadcastReceiver未啓動活動正確
- 19. 3個活動之間的動畫/轉換乾淨
- 20. Android兩個活動之間的旋轉動畫?
- 21. 縮小兩個活動之間的過渡動畫
- 22. 兩個活動之間的自定義過渡(動畫)Android
- 23. 兩個活動之間的Android材質動畫
- 24. 兩個活動之間的翻轉動畫
- 25. Android:開始下一個活動之前未完成動畫
- 26. 滑動之間的活動
- 27. 在兩個活動之間導航時進行動畫製作
- 28. 在兩個活動之間修復動畫
- 29. Android TV未開始正確的活動
- 30. Android未加載正確的活動
請分享你嘗試過什麼到目前爲止 – AnswerDroid
請添加代碼 –