SpotsDialog – 平滑流畅的进度Dialog

SourceQuest

SpotsDialog – 平滑流畅的进度Dialog

从API26开始,Android支持库中的ProgressDialog就被标记为Deprecated,也就是弃用状态。如果要寻找一种替代方案,则需要在App的UI里嵌入ProgressBar ,不过这有时候会很麻烦。这种时候使用第三方库是一个不错的选择。

SpotsDialog正是这样的一个库,效果图如下:

有点类似巨硬Office的启动界面,对吧?

在Gradle中添加依赖:

repositories {
    jcenter()
}
dependencies {
    implementation 'com.github.d-max:spots-dialog:[email protected]'
}

使用:

AlertDialog spotsDialog = new SpotsDialog.Builder()
    .setContext(this)              
    .setMessage(R.string.please_wait)
    .setCancelable(false)
    .setTheme(R.style.MySpotsDialog)
    .build();
spotsDialog.show();
new Thread(() -> {
    //TODO: 在此处处理耗时任务
    spotsDialog.dismiss();
    }).start();

Style可在XML中自定义:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MySpotsDialog" parent="android:Theme.DeviceDefault.Dialog">
        <item name="DialogTitleAppearance">@android:style/TextAppearance.Medium</item>
        <item name="DialogTitleText">Updating…</item>
        <item name="DialogSpotColor">@android:color/holo_orange_dark</item>
        <item name="DialogSpotCount">4</item>
    </style>
</resources>

项目地址: https://github.com/d-max/spots-dialog

该项目基于MIT协议开源。

Tags: ,

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据