我想在點擊圖像時將圖像縮放到新的活動中。 爲了展現我試圖實現的目標,我上傳了一些圖片。 如果通過圖片難以理解,我可以嘗試上傳視頻。 我發現的唯一的事情是this。但它僅適用於View。我想開始一個完整的新的活動或對話。將圖像縮放爲新的活動
任何建議如何以最好的方式做到這一點?
我想在點擊圖像時將圖像縮放到新的活動中。 爲了展現我試圖實現的目標,我上傳了一些圖片。 如果通過圖片難以理解,我可以嘗試上傳視頻。 我發現的唯一的事情是this。但它僅適用於View。我想開始一個完整的新的活動或對話。將圖像縮放爲新的活動
任何建議如何以最好的方式做到這一點?
我相信這個庫做的正是你想要的:https://github.com/albinmathew/PreLollipopTransition(是的,你要的是Android的API的一部分,但只能從棒棒糖了 - 你可能也希望支持更低的API,這就是這個庫的用途)。
編輯:原來https://github.com/takahirom/PreLollipopTransition似乎是更新的,所以你可能想用它來代替。
有了它,你基本上可以做到這這一個活動:
findViewById(R.id.imageView).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Intent intent = new Intent(MainActivity.this, SubActivity.class);
ActivityTransitionLauncher.with(MainActivity.this).from(v).launch(intent);
}
});
...這在第二活動
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
ActivityTransition.with(getIntent()).to(findViewById(R.id.sub_imageView)).start(savedInstanceState);
}
根據http://guides.codepath.com/android/shared-element-activity-transition,您可以簡單地將<item name="android:windowContentTransitions">true</item>
添加到您的活動樣式中,並定義元素在這兩項活動android:transitionName="<some name>"
(transitionName必須在兩者的相同),然後啓動活動是這樣的:
Intent intent = new Intent(this, DetailsActivity.class);
// Pass data object in the bundle and populate details activity.
intent.putExtra(DetailsActivity.EXTRA_CONTACT, contact);
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(this, (View)ivProfile, "<transition name>");
startActivity(intent, options.toBundle());
(直接從該鏈接獲取)。但請注意,這隻適用於L +設備,而上述解決方案可以在任何API 14+上運行。我個人認爲使用本地API是沒有意義的,如果提供了一個提供向後兼容性的良好包裝可用,但你要求它,所以它就是這樣。
希望這可以幫助你,評論,如果您有任何疑問
當我想爲棒棒糖做起來時,我會用什麼?對於Lolipop下我不做這個效果。 –
更新了我的答案。但是我對你有個問題:你爲什麼不想在舊的API上支持這個? (我只是好奇) – Markaos
非常感謝:) –