如何使用从动态创建的imageview到活动的图像转换

时间:2018-02-10 03:32:32

标签: android shared-element-transition

在我的项目中,所有图像都通过图像视图(我不使用列表视图或此处的回收器视图)以布局(作为容器)显示,这是动态创建的。当用户点击此图像视图时,它会启动另一个活动并在更大的图像视图中显示图像。它工作正常,但在这里我想要从动态创建的图像视图到活动图像视图的图像转换。我尝试过这么多,但还没有成功。我需要澄清一下: 1.根本可以这样做吗? 2.在哪里设置动态创建的图像视图的转换名称? 3.我应该以Bitmap形式传输图像数据还是仅将文件url传输到另一个活动?

1 个答案:

答案 0 :(得分:0)

    In your Style add this line  <item name="android:windowContentTransitions">true</item>

    In ImageView  required attr is android:transitionName="profile"


    <ImageView
      android:id="@+id/ivProfile"
      android:transitionName="profile"
      android:scaleType="centerCrop"
      android:layout_width="match_parent"
      android:layout_height="160dp" />

    Pass this in your  Activity 

      Intent intent = new Intent(this, DetailsActivity.class);
      // Pass data object in the bundle and populate details activity.
      intent.putExtra(DetailsActivity.EXTRA_CONTACT, contact);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {      ActivityOptionsCompat options = ActivityOptionsCompat.
      makeSceneTransitionAnimation(this, (View)ivProfile, "profile");
            startActivity(intent, options.toBundle());
    }else{
      startActivity(intent)
    }    
    add this  attr in second activity ImageView also android:transitionName="profile"