如何在android中的按钮内设置循环进度条

时间:2016-08-11 08:00:40

标签: android button

我想在按钮内制作循环进度条。 但我不想使用像dmytrodanylyk/circular-progress-button, etc..

这样的库

我认为此解决方案使用drawable

所以,我做circular_progress.xml

<?xml version="1.0" encoding="utf-8"?>
    <rotate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="1"
        android:toDegrees="360" >

        <shape
            android:innerRadiusRatio="3"
            android:shape="ring"
            android:thicknessRatio="8"
            android:useLevel="false" >
            <size
                android:height="48dip"
                android:width="48dip" />

            <gradient
                android:centerColor="#f0f0f0"
                android:centerY="0.50"
                android:endColor="#000000"
                android:startColor="#ffffff"
                android:type="sweep"
                android:useLevel="false" />
        </shape>

    </rotate>

和,

<Button
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="Log In"
                android:layout_below="@+id/passwordWrapper"
                android:layout_marginTop="5dp"
                android:theme="@style/AppTheme.SignButton"
                android:id="@+id/loginButton"
                android:drawableRight="@drawable/circular_progress"
                />

enter image description here

但是,进度条已停止。

第二个解决方案是使自定义按钮类具有进度条。

但我不知道要使自定义按钮类具有进度条。

1 个答案:

答案 0 :(得分:6)

像你这样在你的按钮里面使用ProgressBar

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Log In"
    android:layout_below="@+id/passwordWrapper"
    android:layout_marginTop="5dp"
    android:theme="@style/AppTheme.SignButton"
    android:id="@+id/loginButton"
    />
<ProgressBar
    android:id="@+id/progress_bar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"/>
</RelativeLayout>

并在您的活动中像这样初始化ProgressBar

ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_bar);

并在希望ProgressBar可见

时添加此项
    progressBar.setVisibility(View.VISIBLE);

然后在要隐藏ProgressBar

时添加此项
    progressBar.setVisibility(View.GONE);