- vừa được xem lúc

Mang SplashScreen API của Android 12 xuống các phiên bản thấp hơn

0 0 12

Người đăng: Trần Truyền

Theo Viblo Asia

Đang tải lên 1_OwivBvVs93W0bhDZ_wKSqQ.gif…Android 12 mang đến cho chúng ta một tính năng mới để cải thiện trải nghiệm người dùng, đó là hỗ trợ Splash Screen chính thức. Trước đây, chúng ta có nhiều cách khác nhau để có thể triển khai một Splash screen. Phiên bản mới nhất của Android sẽ tự động thêm tính năng này cho tất cả các ứng dụng và cho phép tùy chỉnh bằng các thông số đơn giản, nhưng chức năng này chỉ có sẵn ở Android 12.

Tuy nhiên, ngày 30/06/2021 google đã mang đến phiên bản alpha đầu tiên của Core Splashscreen API, cung cấp khả năng tương thích ngược Splash Screen APIs cho các phiên bản thấp hơn. Với việc sử dụng thư viện này, bạn có thể triển khai tính năng mới này xuống API 23, mang lại giao diện giống nhau trên nhiều phiên bản Android.

Trước khi đi sâu vào việc triển khai thì Splash screen là cái gì nhỉ? ?

What is a Splash screen?

Splash Screen là một phản hồi trực quan được hiển thị cho người dùng trong khi ứng dụng đang khởi chạy. Hoạt ảnh này làm cho trải nghiệm người dùng tốt hơn vì người dùng không phải nhìn chằm chằm vào một màn hình trống trơn, mà có thể nhìn thấy biểu tượng ứng dụng hoặc một animation tùy chỉnh. Dưới đây là một ví dụ về Splash screen:

1-Owiv-Bv-Vs93-W0bh-DZ-w-KSq-Q


Màn hình này được hiển thị ở hai điều kiện:

  • Khi cold start - khi app process không chạy và người dùng mở ứng dụng
  • Khi warm start - khi app process đang chạy nhưng Activity chưa được khởi tạo (hoặc đã bị hủy trước đó)

Splash Screen sẽ không được hiển thị khi hot start. Ví dụ: người dùng nhấn nút home để đưa ứng dụng chạy ở background và mở lại trước khi hệ thống destroy Activity, Splash screen sẽ không được hiển thị.

Implementing the Splash Screen API

Core Splashscreen API chỉ hoạt động nếu ứng dụng được biên dịch với API 31 (Android 12). Hiện tại Android 12 vẫn còn đang trong giai đoạn preview, ta cần cập nhật compileSdkVersion thành android-S trong build.gradle để có thể compile được. Trong tương lai, khi phiên bản ổn định của Android 12 được phát hành, phiên bản sẽ được sử dụng là API 31.

android { compileSdkVersion "android-S" // while Android 12 is in preview // compileSdkVersion 31 - when the Android 12 is stable
}

Thêm dependency sau vào build.gradle

implementation "androidx.core:core-splashscreen:1.0.0-alpha01"

Sau khi sync Gradle Files, ta cần cập nhật themes/values.xml của app với các params mới.

Đầu tiên, tạo một theme mới ví dụ Theme.MySplash, sau đó thêm các params dưới đây

  • Style parent phải là Theme.SplashScreen từ API cung cấp
  • windowSplashScreenBackground để set background color
  • windowSplashScreenAnimatedIcon để set splash icon. Có thể là icon tĩnh hoặc động
  • postSplashScreenTheme để set theme sẽ được sử dụng sau khi Splash screen không còn hiển thị
<style name="Theme.MySplash" parent="Theme.SplashScreen"> <item name="windowSplashScreenBackground">@color/purple_500</item> <item name="windowSplashScreenAnimatedIcon">@mipmap/ic_launcher</item> <item name="postSplashScreenTheme">@style/Theme.MyApp</item>
</style> <style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> <!-- Your theme attributes goes here -->
</style>

Set theme SplashScreen vừa tạo cho application hoặc main Activity

<application ... android:theme="@style/Theme.MySplash"> ...
</application>

Sau khi setup theme xong, gọi installSplashScreen() trước setContentView trong Activity. Bước này sẽ liên kết Activity với postSplashScreenTheme mà chúng ta đã xác định trước đó, thay thế SplashScreen theme bằng AppTheme.

Nếu không thực hiện bước ở trên, ứng dụng sẽ throw ra một lỗi:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

Và thế là xong! Bây giờ chúng ta có Splash screen của Android 12 được chuyển xuống API 23

1-Owiv-Bv-Vs93-W0bh-DZ-w-KSq-Q

Conclusion

Khi phát triển ứng dụng, chúng ta cần mang đến cho người dùng trải nghiệm tốt nhất có thể, đặc biệt là trong lần chạy đầu tiên. Ấn tượng đầu tiên có thể xác định xem người dùng có sử dụng ứng dụng của bạn hay không. Hy vọng qua bài viết này sẽ giúp các bạn triển khai một Splash screen từ solution chính chủ của google

Reference

https://proandroiddev.com/implementing-core-splashscreen-api-e62f0e690f74 https://developer.android.com/about/versions/12/features/splash-screen

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 1: Làm quen cô nàng Flutter

Lời mở đầu. Gần đây, Flutter nổi lên và được Google PR như một xu thế của lập trình di động vậy.

0 0 281

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 3: Lột trần cô nàng Flutter, BuildContext là gì?

Lời mở đầu. Màn làm quen cô nàng FLutter ở Phần 1 đã gieo rắc vào đầu chúng ta quá nhiều điều bí ẩn về nàng Flutter.

0 0 206

- vừa được xem lúc

[Android] Hiển thị Activity trên màn hình khóa - Show Activity over lock screen

Xin chào các bạn, Hôm nay là 30 tết rồi, ngồi ngắm trời chờ đón giao thừa, trong lúc rảnh rỗi mình quyết định ngồi viết bài sau 1 thời gian vắng bóng. .

0 0 107

- vừa được xem lúc

Tìm hiểu Proguard trong Android

1. Proguard là gì . Cụ thể nó giúp ứng dụng của chúng ta:. .

0 0 100

- vừa được xem lúc

Làm ứng dụng học toán đơn giản với React Native - Phần 6

Chào các bạn một năm mới an khang thịnh vượng, dồi dào sức khỏe. Lại là mình đây Đây là link app mà các bạn đang theo dõi :3 https://play.google.com/store/apps/details?id=com.

0 0 68

- vừa được xem lúc

20 Plugin hữu ích cho Android Studio

1. CodeGlance. Plugin này sẽ nhúng một minimap vào editor cùng với thanh cuộn cũng khá là lớn. Nó sẽ giúp chúng ta xem trước bộ khung của code và cho phép điều hướng đến đoạn code mà ta mong muốn một cách nhanh chóng.

0 0 315