Nếu ứng dụng của bạn triển khai màn hình chờ tuỳ chỉnh hoặc sử dụng giao diện trình chạy, hãy di chuyển ứng dụng sang thư viện SplashScreen
có trong Jetpack để đảm bảo ứng dụng hiển thị chính xác trên mọi phiên bản Wear OS.
Hãy xem hướng dẫn triển khai từng bước trên trang này để tìm hiểu cách thêm màn hình chờ bằng cách sử dụng thư viện SplashScreen
sao cho màn hình đáp ứng được nguyên tắc thiết kế.
Thêm phần phụ thuộc
Hãy thêm phần phụ thuộc sau đây vào tệp build.gradle
của mô-đun ứng dụng:
Groovy
dependencies { implementation "androidx.core:core-splashscreen:1.2.0-alpha02" }
Kotlin
dependencies { implementation("androidx.core:core-splashscreen:1.2.0-alpha02") }
Đảm bảo bạn đang sử dụng phiên bản 1.0.1
trở lên để được hỗ trợ cho các kích thước Wear OS mặc định.
Thêm giao diện
Tạo giao diện màn hình chờ trong res/values/styles.xml
. Phần tử mẹ phụ thuộc vào hình dạng của biểu tượng:
- Nếu biểu tượng hình tròn, hãy sử dụng
Theme.SplashScreen
. - Nếu biểu tượng có hình dạng khác, hãy sử dụng
Theme.SplashScreen.IconBackground
.
Dùng windowSplashScreenBackground
để tô nền bằng một màu đen duy nhất. Đặt giá trị postSplashScreenTheme
thành giao diện mà Hoạt động sẽ sử dụng và windowSplashScreenAnimatedIcon
thành một đối tượng có thể vẽ hoặc đối tượng đồ hoạ động có thể vẽ:
<resources>
<style name="Theme.App" parent="@android:style/Theme.DeviceDefault" />
<style name="Theme.App.Starting" parent="Theme.SplashScreen">
<!-- Set the splash screen background to black -->
<item name="windowSplashScreenBackground">@android:color/black</item>
<!-- Use windowSplashScreenAnimatedIcon to add a drawable or an animated
drawable. -->
<item name="windowSplashScreenAnimatedIcon">@drawable/splash_screen</item>
<!-- Set the theme of the Activity that follows your splash screen. -->
<item name="postSplashScreenTheme">@style/Theme.App</item>
</style>
</resources>
Nếu sử dụng biểu tượng không phải là hình tròn, bạn cần đặt màu nền trắng bên dưới biểu tượng. Trong trường hợp này, hãy sử dụng Theme.SplashScreen.IconBackground
làm giao diện chính và đặt thuộc tính windowSplashScreenIconBackgroundColor
:
<style name="Theme.App.Starting" parent="Theme.SplashScreen.IconBackground">
...
<!-- Set a white background behind the splash screen icon. -->
<item name="windowSplashScreenIconBackgroundColor">@android:color/white</item>
</style>
Các thuộc tính khác là không bắt buộc.
Tạo đối tượng có thể vẽ cho giao diện
Giao diện màn hình chờ yêu cầu đối tượng có thể vẽ phải truyền vào thuộc tính windowSplashScreenAnimatedIcon
. Ví dụ: bạn có thể tạo tệp này bằng cách thêm tệp mới res/drawable/splash_screen.xml
và sử dụng biểu tượng trình chạy ứng dụng cũng như kích thước biểu tượng màn hình chờ chính xác:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:width="@dimen/splash_screen_icon_size"
android:height="@dimen/splash_screen_icon_size"
android:drawable="@mipmap/ic_launcher"
android:gravity="center" />
</layer-list>
Kích thước biểu tượng màn hình chờ được xác định trong res/values/dimens.xml
và khác nhau tuỳ thuộc vào việc biểu tượng tròn:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Round app icon can take all of default space -->
<dimen name="splash_screen_icon_size">48dp</dimen>
</resources>
...hay không tròn, do đó, phải sử dụng nền biểu tượng:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Non-round icon with background must use reduced size to fit circle -->
<dimen name="splash_screen_icon_size">36dp</dimen>
</resources>
Chỉ định giao diện
Trong tệp kê khai của ứng dụng (AndroidManifest.xml
), hãy thay thế giao diện của hoạt động khởi động (thường là các giao diện xác định mục trình chạy hoặc được xuất) thành giao diện mà bạn đã tạo ở bước trước:
<manifest>
<application android:theme="@style/Theme.App.Starting">
<!-- or -->
<activity android:theme="@style/Theme.App.Starting">
<!-- ... -->
</manifest>
Cập nhật hoạt động khởi động
Cài đặt màn hình chờ trong hoạt động khởi động trước khi gọi super.onCreate()
:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// Handle the splash screen transition.
installSplashScreen()
super.onCreate(savedInstanceState)
setContent {
WearApp("Wear OS app")
}
}
}
Tài nguyên khác
Tìm hiểu thêm về màn hình chờ nói chung và cách sử dụng màn hình chờ trong ứng dụng.
Đề xuất cho bạn
- Lưu ý: văn bản có đường liên kết sẽ hiện khi JavaScript tắt
- Di chuyển cách triển khai màn hình chờ sang Android 12 trở lên
- Màn hình chờ
- Tích hợp Hành động trong ứng dụng với các tiện ích Android