2017-02-24 29 views
0

我想在從活動A切換到活動B時執行共享元素轉換。問題是,當共享圖像查看縮放類型不同時,轉換動畫不能正常工作。我注意到轉換開始時的「反彈」(我猜不是動畫imageView scaleType改變)。Android共享元素轉換不適用於不同的img縮放類型

活動A包含scaleType ImageView的:centerCrop相同的 「反彈」 我從活動B回來的時候到活動A.

詳情注意到。 Actvity B包含imageView和scaleType:fitXY

當然,ImageView都有android:transitionName="sharedView"

我的過渡中XML設置是這樣的:

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"> 
    <changeBounds/> 
    <changeImageTransform/> 
</transitionSet> 

在這個配置文件寫的是:

與ChangeBounds組合,ChangeImageTransform允許 ImageViews是改變大小,形狀,或ImageView.ScaleType順利地動畫 內容。

那麼爲什麼我的轉換不能順利進行?或者如果changeBoundschangeImageTransform似乎不起作用,在共享元素轉換期間如何動畫scaleType更改?

值得一提的是,如果我讓縮放類型相同(例如centerCrop和centerCrop)的共享視圖 - 那麼轉換工作將順利進行,並且一切正常。

+0

你有沒有找到一個解決之間的平穩變化scaleType? –

+0

號仍然期待着答案/建議。 – user2999943

+0

你能分享一些你的代碼嗎?您是否在使用像畢加索或Glide這樣的圖像加載庫?我最近在這方面花了好幾個小時,但我想我終於有了合理的地方。它永遠不會是完美的。 –

回答

0

有同樣的問題。通過爲ImageView設置相同的padding屬性解決了這個問題。我不知道它爲什麼如此,但希望它可以幫助某人。

0

我已經解決了這個問題在我的情況。以下是你需要檢查的內容:

  • 確保您共享單元ImageView的源和目標活動(請勿使用任何容器)。
  • 爲ImageView(不是它的容器)設置transitionName

我更新之後,changeImageTransform會做它的工作對這個2 ImageView小號