/LoadingButton

一个加载功能的按钮控件,支持按钮收缩,完成和失败的图标文字切换

Primary LanguageJava

LoadingButton LoadingButton

一个小巧灵活的带加载功能的按钮控件,继承自DrawableTextView,加载动画来自于CircularProgressDrawable

特性

  • 支持按钮收缩
  • 支持加载完成和失败图标显示
  • 可设置加载动画颜色、大小、位置

如何导入

根目录下的build.gradle

allprojects {
	  repositories {
	  	...
	  maven { url 'https://jitpack.io' }
	  }
}

App目录下的build.gradle

dependencies {
	//Androidx
	implementation 'com.github.FlodCoding:LoadingButton:1.0.0-alpha6'
	
	//Support-appcompat
	implementation 'com.github.FlodCoding:LoadingButton:1.0.0-alpha4-support'
 	}

Demo

点我下载

Demo截图

  

基本用法

XML

<com.flod.loadingbutton.LoadingButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/selector_btn"
            android:drawablePadding="10dp"
            android:gravity="center"
            android:padding="8dp"
            android:text="Submit"
            app:endCompleteDrawable="@drawable/ic_successful"
            app:endFailDrawable="@drawable/ic_fail" />

Code


loadingBtn.start();     //开始加载
loadingBtn.complete();  //加载成功
loadingBtn.fail();      //加载失败
loadingBtn.cancel();    //加载取消

loadingBtn.setEnableShrink(true)
                .setDisableClickOnLoading(true)
                .setShrinkDuration(450)
                .setLoadingColor(loadingBtn.getTextColors().getDefaultColor())
                .setLoadingStrokeWidth((int) (loadingBtn.getTextSize() * 0.14f))
                .setLoadingPosition(DrawableTextView.POSITION.START)
                .setCompleteDrawable(R.drawable.ic_successful)
                .setFailDrawable(R.drawable.ic_fail)
                .setEndDrawableKeepDuration(900)
                .setLoadingEndDrawableSize((int) (loadingBtn.getTextSize() * 2))
                .setOnLoadingListener(new LoadingButton.OnLoadingListenerAdapter() {
                    @Override
                    public void onCanceled() {
                        Toast.makeText(getApplicationContext(), "onCanceled", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onFailed() {   
                        Toast.makeText(getApplicationContext(), "onFailed", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onCompleted() {
                        Toast.makeText(getApplicationContext(), "onCompleted", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onLoadingStart() {
                        loadingBtn.setText("Loading");
                    }

                    @Override
                    public void onEndDrawableAppear(boolean isComplete, LoadingButton.EndDrawable endDrawable) {
                        if (isComplete) {
                            loadingBtn.setText("Complete);
                        } else {
                            loadingBtn.setText("Fail");
                        }
                    }
                });

属性说明

属性名 类型 说明
enableShrink boolean (default:true) 设置加载时收缩
disableClickOnLoading boolen (default:true) 设置加载时禁用点击
shrinkDuration integer (default:450ms) 收缩动画时间
loadingEndDrawableSize dimension (default:TextSize *2) 设置LaodingDrawable和EndDrawable大小
loadingDrawableColor color (default:TextColor) 设置Loading的颜色
loadingDrawablePosition enum:Start,Top,End,Bottom (default:Start) 设置Loading的位置
endCompleteDrawable reference 完成时显示的图标
endFailDrawable reference 失败时显示的图标
endDrawableAppearTime integer 完成或失败图标从无到有的时间
endDrawableDuration integer 完成或失败图标停留的时间

Demo使用的第三方库