アプリケーションAndroid 12 Splash Screen
13711 ワード
Splash Screenとは?
既存のSplash Screenの適用を参照してください.
🛠 アンドロイド12リリース
韓国時間21年10月5日、Android 12が発売された.
複数の変更点がありますが、アプリケーションを起動するSpalsh Screenを自動的に生成する機能があります.
開発者が何も設定しなくても、アプリケーションアイコンはSplashトピックに適用されます!
... こんなに幸せに暮らせたらいいのに、問題がある.
なぜSplash Screenを適用するのですか?
1.SDKのUIと一致しない
何の作業も完了していないアプリケーションでは、ウェルカム画面が実装されていますが、アプリケーションアイコンではなく他の画像が適用されます.
アンドロイド12および以下のバージョンでは、「ようこそ」画面で異なる結果が得られます.
2.Splash活動と繰り返し
ウェルカムスクリーンを設定する方法には、ウェルカムスクリーンをアクティブスクリーンに設定してメイン画面に移動する方法がたくさんあります.
私はスタート画面を単独でアクティブ画面に置いていないので、2番目の問題は問題ありません.
他のアプリケーションを使用する場合、Android 12にはアプリケーションアイコンが表示されます.
既存のウェルカム画面も登場し、ユーザーインタフェース/UXの体験が悪い.
3.リポジトリからデータを読み込む
2つ目の問題を解決するには、activityを削除し、基本アプリケーションアイコンを起動画面として使用します.
しかし、画面起動時にリポジトリからデータをロードし、準備ができたらメイン画面に移動するアプリケーションでは?
データをロードして準備する前に起動画面を維持する論理を実現する必要があります.
このため、Splash ScreenはAndroid 12と併用される.
より良い体験をするために、アニメーションアイコンを使用しました.
👀 プレビュー
基本
終了アニメーションを追加
実際の応用
コードはGitHub Sampleを参照してください.
🔥 適用
準備作業
韓国時間21年10月5日、Android 12が発売された.
複数の変更点がありますが、アプリケーションを起動するSpalsh Screenを自動的に生成する機能があります.
開発者が何も設定しなくても、アプリケーションアイコンはSplashトピックに適用されます!
... こんなに幸せに暮らせたらいいのに、問題がある.
なぜSplash Screenを適用するのですか?
1.SDKのUIと一致しない
何の作業も完了していないアプリケーションでは、ウェルカム画面が実装されていますが、アプリケーションアイコンではなく他の画像が適用されます.
アンドロイド12および以下のバージョンでは、「ようこそ」画面で異なる結果が得られます.
2.Splash活動と繰り返し
ウェルカムスクリーンを設定する方法には、ウェルカムスクリーンをアクティブスクリーンに設定してメイン画面に移動する方法がたくさんあります.
私はスタート画面を単独でアクティブ画面に置いていないので、2番目の問題は問題ありません.
他のアプリケーションを使用する場合、Android 12にはアプリケーションアイコンが表示されます.
既存のウェルカム画面も登場し、ユーザーインタフェース/UXの体験が悪い.
3.リポジトリからデータを読み込む
2つ目の問題を解決するには、activityを削除し、基本アプリケーションアイコンを起動画面として使用します.
しかし、画面起動時にリポジトリからデータをロードし、準備ができたらメイン画面に移動するアプリケーションでは?
データをロードして準備する前に起動画面を維持する論理を実現する必要があります.
このため、Splash ScreenはAndroid 12と併用される.
より良い体験をするために、アニメーションアイコンを使用しました.
👀 プレビュー
基本
終了アニメーションを追加
実際の応用
コードはGitHub Sampleを参照してください.
🔥 適用
準備作業
準備作業
Animated Vector Driveableの作成を参照してください.
詳しい過程を書こうと思っていたのですが面倒でした...読んでいるときに気になることがあったらメッセージを残してください.できるだけ皆さんに伝えます.
もしこの過程が面倒だったら、次の私が作ったサンプルを使ってもいいです.(ハートを押してください!まばたき!😉)
ダウンロード例Animated Vector Driveable完全版
プロセス
ライブラリの追加->drawableフォルダにAnimated Vector Drawable->トピックを追加します.xmlの変更->必要に応じてviewTreeObserverリスナーを追加
📌 ライブラリの追加
implementation("androidx.core:core-splashscreen:1.0.0-beta01")
📌 drawableフォルダにAnimated VectorDrawableを追加
📌 themes.xmlの変更
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.Test" parent="Theme.MaterialComponents.Light.NoActionBar">
...
<!-- Customize your theme here. -->
<item name="android:windowSplashScreenBackground">@color/white</item>
<item name="android:windowSplashScreenAnimatedIcon">@drawable/avd_anim</item>
<item name="android:windowSplashScreenAnimationDuration">500</item>
...
</style>
</resources>
正式なドキュメントの説明アイコンは次のように構成されています.1πアプリケーションアイコンは、静的またはアニメーション可能なVectorDrawbleでなければなりません.アニメーションは1秒を超えないことを強くお勧めします.
2オプションのアイコンと背景のコントラストが必要な場合に便利です.アダプティブアイコンを使用して、背景とコントラストが十分に高い場合は、背景が表示されます.
3」背景の1/3が隠されています.
4ππ背景は単一色からなる.アトリビュートが設定されていない場合は、既定でこのアトリビュートが使用されます.
avd animファイルを白い背景のアニメーションアイコンに設定します.
windowSplashScreenAnimationDuration
オプションは、ウェルカム画面表示の実際の時間には影響しません.終了画面アニメーションをカスタマイズすると影響します.
(viewTreeObserverリスナーを使用して、Splash画面が最短時間または特定時間で一定に保たれていることを確認してください.)
📌 必要に応じてviewTreeObserverリスナーを追加
// Create a new event for the activity.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Set the layout for the content view.
setContentView(R.layout.main_activity)
// Set up an OnPreDrawListener to the root view.
val content: View = findViewById(android.R.id.content)
content.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
// Check if the initial data is ready.
return if (viewModel.isReady) {
// The content is ready; start drawing.
content.viewTreeObserver.removeOnPreDrawListener(this)
true
} else {
// The content is not ready; suspend.
false
}
}
}
)
}
false
に戻ると、描画ビューが停止します.true
に戻ると、ビューの描画が開始され、アクティビティが開始されます.リポジトリからデータをロードするか、特定の操作の後にビューを描画する必要がある場合は、これを使用します.
追加
ウェルカム画面を閉じたい場合は
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
// Add a callback that's called when the splash screen is animating to
// the app content.
splashScreen.setOnExitAnimationListener { splashScreenView ->
// Create your custom animation.
val slideUp = ObjectAnimator.ofFloat(
splashScreenView,
View.TRANSLATION_Y,
0f,
-splashScreenView.height.toFloat()
)
slideUp.interpolator = AnticipateInterpolator()
slideUp.duration = 200L
// Call SplashScreenView.remove at the end of your custom animation.
slideUp.doOnEnd { splashScreenView.remove() }
// Run your animation.
slideUp.start()
}
}
示すように、コードを追加することで、終了アニメーションをカスタマイズできます.公式ファイルにはアイコンサイズや注意事項がたくさんありますので、お読みください.
リファレンス
Android12's Splash Screen API
Android Developers - Splash Screen
Reference
この問題について(アプリケーションAndroid 12 Splash Screen), 我々は、より多くの情報をここで見つけました https://velog.io/@pachuho/Android-안드로이드-12-Splash-Screen-적용하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol