将recyclelerview的图片变成新的活动

时间:2017-01-09 09:22:53

标签: android android-layout android-recyclerview android-imageview

我有一个recyclerview的活动,其中填充了图片。如果按下recyclerview上的某个项目,我需要将该图片增大到屏幕的整个尺寸,然后更改工具栏并使用新的activity,其屏幕上显示所点击的完整尺寸图像项目。然后我还需要一个新的工具栏。

有关如何解决此问题的任何想法?

4 个答案:

答案 0 :(得分:4)

检查共享转换,这可能是您想要的。

https://guides.codepath.com/android/Shared-Element-Activity-Transition

enter image description here

答案 1 :(得分:1)

试试这个。

我认为这会对你有所帮助。

link

答案 2 :(得分:1)

您可以使用片段转换

public class DetailsTransition extends TransitionSet {
    public DetailsTransition() {
        setOrdering(ORDERING_TOGETHER);
        addTransition(new ChangeBounds()).
                addTransition(new ChangeTransform()).
                addTransition(new ChangeImageTransform()));
    }
}

enter image description here

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() ....