Android Circular Progress Button 教程

Android Circular Progress Button 教程

circular-progress-buttonAndroid Circular Progress Button项目地址:https://gitcode.com/gh_mirrors/ci/circular-progress-button

1. 项目介绍

Android Circular Progress Button 是一个专为Android设计的开源库,它允许开发者创建具有美观状态动画切换的按钮。这个库主要用来实现一种按钮,当点击后,按钮会变为一个显示进度的环形动画,适用于图片上传、下载或其他需要显示进行中的操作的场景。完成或失败时,按钮还会显示成功的勾号或错误的叉号图标。

项目主页:https://github.com/dmytrodanylyk/circular-progress-button

2. 项目快速启动

添加依赖

首先,在你的 build.gradle 文件(app级别)中添加以下依赖:

dependencies {
    implementation 'com.github.dmytrodanylyk:circular-progress-button:1.1.0'
}

然后同步项目以下载库。

使用 Circular Progress Button

在你的布局XML文件中添加 Circular Progress Button:

<com.dd.CircularProgressButton
    android:id="@+id/btnWithText"
    app:cpb_color="#FF4081"
    app:cpb_stroke_width="3dp"
    app:cpb_text="Submit"
    app:cpb_progress="60"/>

初始化并处理点击事件:

CircularProgressButton btnWithText = findViewById(R.id.btnWithText);
btnWithText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 开始加载进度
        btnWithText.setProgressAndShowProgress(0);
        
        // 在这里执行异步任务,完成后更新进度
        // ...
        
        // 当任务完成后
        btnWithText.setProgressAndHideProgress(100);
    }
});

3. 应用案例和最佳实践

  • 登录和注册:在用户输入完凭证并点击登录或注册按钮后,显示环形进度表示验证过程。
  • 提交表单:提交包含多步骤的数据时,如调查问卷或订单,按钮可展示当前进度。
  • 文件上传或下载:在文件传输过程中,用户可以看到按钮上的进度变化。

最佳实践:

  • 保持进度条颜色与主题一致,确保视觉一致性。
  • 根据实际情况调整进度动画速度,确保用户感知到操作正在进行但不会过于等待。
  • 完成或失败状态显示时间应足够长,以便用户注意到。

4. 典型生态项目

该项目被广泛应用于多个Android应用,包括但不限于以下项目:

  • 自定义App的提交、分享和保存功能。
  • 第三方库集成,例如网络请求库,用于提供UI反馈。
  • 开源示例项目,用于展示如何优雅地处理按钮状态转换。

若要了解更多实际应用场景,可以浏览GitHub仓库中的示例项目和社区贡献者们的项目。

circular-progress-buttonAndroid Circular Progress Button项目地址:https://gitcode.com/gh_mirrors/ci/circular-progress-button

package com.example.androidtest.view; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.StateListDrawable; import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.AttributeSet; import android.util.StateSet; import android.widget.Button; import com.example.androidtest.R; public class CircularProgressButton extends Button { /** * 状态代号 * 0为初始状态,-1失败状态,100为完成状态,50为不明确间状态 */ public static final int IDLE_STATE_PROGRESS = 0; public static final int ERROR_STATE_PROGRESS = -1; public static final int SUCCESS_STATE_PROGRESS = 100; public static final int INDETERMINATE_STATE_PROGRESS = 50; /** * 背景StrokeGradientDrawable * A Drawable with a color gradient for buttons, backgrounds, etc. * It can be defined in an XML file with the element. */ private StrokeGradientDrawable background; /** * 环形动画背景 */ private CircularAnimatedDrawable mAnimatedDrawable; /** * 环形进度背景 */ private CircularProgressDrawable mProgressDrawable; /** * ColorStateList对象可以在XML定义,像color一样使用,它能根据它应用到的View对象的状态实时改变颜色 * 当每次状态改变时,StateList都会从上到下遍历一次,第一个匹配当前状态的item将被使用——选择的过程不是基于“最佳匹配”, * 只是符合state的最低标准的第一个item。 */ private ColorStateList mIdleColorState; /** * 完成状态ColorStateList */ private ColorStateList mCompleteColorState; /** * 失败状态ColorStateList */ private ColorStateList mErrorColorState; /** * 用于根据状态改变drawable * 初始状态背景 */ private StateListDrawable mIdleStateDrawable;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咎丹娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值