我有一个recyclerview
的活动,其中填充了图片。如果按下recyclerview
上的某个项目,我需要将该图片增大到屏幕的整个尺寸,然后更改工具栏并使用新的activity
,其屏幕上显示所点击的完整尺寸图像项目。然后我还需要一个新的工具栏。
有关如何解决此问题的任何想法?
答案 0 :(得分:4)
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以使用片段转换
public class DetailsTransition extends TransitionSet {
public DetailsTransition() {
setOrdering(ORDERING_TOGETHER);
addTransition(new ChangeBounds()).
addTransition(new ChangeTransform()).
addTransition(new ChangeImageTransform()));
}
}
https://medium.com/@bherbst/fragment-transitions-with-shared-elements-7c7d71d31cbb#.9t2bqq23m
https://www.raywenderlich.com/126528/android-recyclerview-tutorial
答案 3 :(得分:0)
我已经解决了这个问题。它很简单,顺便说一句:-)
将 android:transitionName =“ ouranimation” 属性添加到要设置动画的视图中。 例如:
在activity_main.xml中:-
<android.support.v7.widget.CardView
...>
<ImageView
android:id="@+id/ivProfile"
android:transitionName="profile"
android:scaleType="centerCrop"
android:layout_width="match_parent"
android:layout_height="160dp" />
...
</android.support.v7.widget.CardView>
在detail_activity.xml中:-
<LinearLayout
...>
<ImageView
android:id="@+id/ivProfile"
android:transitionName="profile"
android:scaleType="centerCrop"
android:layout_width="match_parent"
android:layout_height="380dp" />
...
</LinearLayout>
现在,只需从源中指定这些共享元素和视图的捆绑包即可开始目标活动。注意:-此过渡仅适用于大于21棒棒糖的api级别。
Intent intent = new Intent(this, MyDetailsActivity.class);
// pass the data through intent if you need...
intent.putExtra("key", detail);
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation((Activity) context, (View)ivProfile, "ouranimation");
startActivity(intent, options.toBundle());
要将此动画还原回MainActivity,只需调用此Activity.supportFinishAfterTransition()
方法而不是Activity.finish()
....