툴바에 이미지가있는 액티비티 하나와 동일한 이미지가있는 대화 상자처럼 테마가있는 액티비티가 있습니다. 이 레이아웃 파일입니다대화 상자에서 Android 공유 요소가 활성화되었습니다.
my_activity.xml :
...
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/my_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:scaleType="centerCrop"
android:src="@drawable/my_drawable"
android:transitionName="@string/my_image_transition"
app:riv_oval="true" />
...
my_dialog_activity.xml :
<style name="MyDialogActivity" parent="Theme.AppCompat.Light.Dialog.MinWidth">
<item name="windowNoTitle">true</item>
<item name="android:windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
<item name="android:windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
</style>
: 대화 활동이 매니페스트에이 테마를 적용하여 대화를하게
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@id/my_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/my_drawable"
android:tint="@color/accent"
android:transitionName="@string/my_image_transition" />
</LinearLayout>
액티비티와 대화 상자는 내가 원하는 것처럼 보이게 만듭니다.
이제 ImageViews와 공유 요소 애니메이션을 구현하고 싶습니다. 사용자가 첫 번째 액티비티의 이미지를 클릭하면 이미지가 커지고 대화 상자의 이미지에 맞도록 화면 중간으로 이동해야합니다.
그래서이 코드 작성 :Intent intent = new Intent(MyActivity.this, MyDialogActivity.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
MyActivity.this, v, getString(R.string.my_image_transition)
);
startActivityForResult(intent, 999, options.toBundle());
} else {
startActivityForResult(intent, 999);
}
이 애니메이션은 실제로 일어나지 않는다, 그러나 이동 된 이미지는 대화의 영역의 내부에만 표시됩니다. 따라서 대화 상자의 왼쪽 위 모서리에서 오는 이미지를 볼 수 있지만 대화 상자 외부의 첫 번째 활동에서 이동하는 것을 보지 못합니다.
가 여기 모습과 방법의 HTML 버전의 IT가 현재의 모습 : https://jsfiddle.net/wutqdh9d/1/
왜 이러한 이유로 대화 활동이 필요합니까? 메인 액티비티의 UR 이미지를 중앙에 애니메이션으로 적용하고 흰색 배경을 가진 뷰 레이아웃을 배치하고 애니메이션이 끝나면 나타납니다. – uguboz
대화 상자 활동에는 툴바와 같은 다른보기도 포함됩니다. –