这次带来一个个性化的按钮,再点击以后可以变成Loading,Loading完成以后又可以拉伸会按钮。会不多说,下面开始。
首先还是定义几个资源文件。
button_main_color_up.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="20dp" />
<solid android:color="#45a8ca" />
<gradient
android:endColor="#45a8ca"
android:startColor="#6fd1e7" />
</shape>
button_main_color_down.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="20dp" />
<solid android:color="#45a8aa" />
<gradient
android:endColor="#45a8aa"
android:startColor="#6fd1c7" />
</shape>
button_main_color_selector:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_main_color_up" android:state_pressed="false"></item>
<item android:drawable="@drawable/button_main_color_down" android:state_pressed="true"></item>
</selector>
circle_loading.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="18dp"
android:shape="ring"
android:thickness="2dp"
android:useLevel="false">
<solid android:color="#45a8ca" />
<gradient
android:endColor="#45a8ca"
android:startColor="#0000"
android:type="sweep" />
</shape>
然后就可以上本体了:
LoadingButton.java:
public class LoadingButton extends Button {
private Context context;
// 开始Loading时的回调
private OnStartListener startListener;
// 结束Loading时的回调
privat