Android

[Androidアニメーション]Shared Elements遷移

投稿日:2017年10月30日 更新日:

はじめに

最近、雨が多いですね。そんな時は家にこもって、プログラミングをするのが良いですよね。

今回は、Acitivity間の遷移をちょっとしたコーディングでかっこよくできる、Shared Elements遷移について紹介したいと思います。

※Android 5.0以降を前提としています。

Shared Elements遷移とは

Activity間の遷移アニメーションの一つです。2つのActivity間で共有(Share)されているビュー(Element)を、各Activity間でアニメーションさせて、遷移させることができます。Android Developerサイトにとても詳しく書かれていますので、こちらもご参照ください。

文章だけでは、よくわからないと思いますので、Master ActivityからDetail Activityに画像をアニメーションさせて、遷移するというシンプルな例で説明したいと思います。

layout xml

Master ActivityとDetail Activity間で共有したいビューに android:transitionName 属性を追加し、値としては同じ文字列を指定します。

Activity遷移

上記の設定をしたら、あとはMaster ActivityからDetail Activityに遷移させる実装します。特にDetailActivity側には処理を実装する必要はありません。

Master Activityの一番上の画像をタップしたら、Detail Activityに遷移させる単純な実装です。

その他

アニメーションの設定については、下記のとおりstyles.xmlで指定できます。自分でアニメーションのxmlを記述すれば、カスタム遷移も可能です。今回は、SDKで提供されているものを指定しています。

さいごに

今回は、Shared Elements遷移の簡単なサンプルを紹介しました。

実際の開発では、アニメーションのカスタマイズや、画像をサーバから取得する場合の工夫など、色々と実装しなければならないこともあると思います。まずは、このサンプルでShared Elements遷移のイメージだけでも掴んでいただければ幸いです。

blog-page_footer_336




blog-page_footer_336




-Android
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

AndroidでWebViewを使用する時に押さえておきたいポイント5選

1 はじめに2 JSのAlert, Confirm, Promptが表示されない!3 読み込み中の進捗を表示する4 UserAgent5 クリアテキスト設定5.1 クリアテキストを無効にする5.2 H ...

Android 11でdeprecatedになったAsyncTask対応Java編

1 はじめに2 基本的な対応2.1 対応後のサンプル2.2 cancelとonCancelled3 execute().get()への対応4 最後に5 おすすめ書籍 はじめに タイトルの通りAndro ...

Flutter開発のはじめかた 開発環境セットアップ〜Widtgetの解説

1 はじめに2 セットアップ2.1 Flutterのインストール2.1.1 Android環境のセットアップ2.1.2 Xcodeのインストール2.1.3 IDEのセットアップ(Android Stu ...

Android JavaでS3への画像アップロード

1 はじめに2 AWS上での事前準備3 Android StudioのGradleでAWS SDKをインストール4 ManifestにPermissionの追加5 カメラで写真を撮影し、保存先のPat ...

[Android] パーミッション管理を簡単・簡潔に書けそうなPermissionsDispatcher

1 はじめに2 環境3 導入4 Activityでの実装例5 @RuntimePermissions(必須)6 PermissionsDispatcherに処理を移譲する7 @NeedsPermiss ...

フォロー

follow us in feedly

blog-page_side_responsive

2017年10月
1234567
891011121314
15161718192021
22232425262728
293031 

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。
Get it on App Store
Get it on Google Play