按钮中的Android进度条

Fab*_*ian 36 android button progress-bar

是否有可能在按钮中显示旋转进度条?例如作为背景可绘制?

Lio*_*ior 33

是.

您可以创建一个AnimationDrawable,如所描述这里,然后用drawableLeft你的按钮的XML标记(例如).像这样:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/your_background_drawable_resource"
        android:drawableLeft="@drawable/your_animation_drawable_resource"
        android:text="@string/your_text_res">
</Button>
Run Code Online (Sandbox Code Playgroud)

  • 你必须在drawable中绘制车轮的单独部分吗???`@drawable/wheel5`。大约有 10 个或更多额外可绘制的。太复杂了 (4认同)

Lea*_*ira 27

我遇到了同样的问题,所以我为此创建了一个专门的按钮:LoadingProgressButton

包括这样的按钮:

    <br.com.simplepass.loading_button_lib.CircularProgressButton
android:id="@+id/btn_id"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="@drawable/circular_border_shape"
     app:spinning_bar_width="4dp" <!-- Optional -->
     app:spinning_bar_color="#FFF" <!-- Optional -->
     app:spinning_bar_padding="6dp" <!-- Optional -->
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

    CircularProgressButton btn = (CircularProgressButton) findViewById(R.id.btn_id)
            btn.startAnimation(); 
                [do some async task. When it finishes]

                 //You can choose the color and the image after the loading is finished
                 btn.doneLoagingAnimation(fillColor, bitmap);
                 [or just revert de animation]
                 btn.revertAnimation();
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


sam*_*yte 25

是的...只需在Relative Layout中包含按钮和progressBar,就像这样......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal">

        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/progressBar"
            android:layout_gravity="right"
            android:layout_alignTop="@+id/btnConnect"
            android:layout_alignRight="@+id/btnConnect"
            android:layout_alignEnd="@+id/btnConnect" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Connect"
            android:id="@+id/btnConnect"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="30dp"
            android:width="200dp"
            android:focusable="false"
            android:focusableInTouchMode="false" />
    </RelativeLayout>

    <TextView
        android:id="@+id/txtConnectStatus"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnConnect"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="Status : Not connected"
        android:textSize="12dp"
        android:layout_gravity="center_horizontal" />

    <LinearLayout
        android:orientation="vertical"
Run Code Online (Sandbox Code Playgroud)

想发布样本图片,但我还没有足够的声誉...;)

  • 现在,您可以发布图像。您拥有足够的声誉。 (5认同)