私は、ツールバーの画像と大きな画像を持つダイアログのようなテーマのアクティビティを持っています。これらは、レイアウトファイルです:ダイアログボックスへの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>
アクティビティとダイアログの両方が、私がそれらのように見えるように見えます。
これらのImageViewで共有要素アニメーションを実装したいと思います。ユーザーが最初のアクティビティの画像をクリックすると、拡大して画面の中央に移動し、より大きなダイアログの画像に収まるようにする必要があります。
だから私はこのコードを書いた:
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バージョンだと、それが現在のように見えるもの:https://jsfiddle.net/wutqdh9d/1/
なぜこのような理由でダイアログアクティビティが必要ですか?主なアクティビティのウルイメージを中央にアニメーション表示し、白い背景のビューレイアウトを配置し、アニメーションが終了したときに表示させるだけです。 – uguboz
ダイアログアクティビティには、ツールバーのような他のビューも含まれます。 –