如何自定义ProgressBar的边框宽度

Evg*_*mov 3 android android-progressbar

我有一个默认进度条

在此输入图像描述

对我来说,它的边界非常大。我怎样才能制作这样的进度条(带有细边框)?

在此输入图像描述

我有一个简单的布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <ProgressBar
        android:id="@+id/hello_progress_bar"
        android:layout_width="210dp"
        android:layout_height="210dp"

        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

ego*_*kem 5

  1. 创建一个可绘制形状的文件以供您进度

    <?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:toDegrees="360">
    
        <shape
            android:innerRadiusRatio="3"
            android:shape="ring"
            android:thicknessRatio="8"
            android:useLevel="false">
    
            <solid
                 android:color="#F3A523"/>
    
         </shape>
    
    </rotate>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在你的内部使用它ProgressBar

     <ProgressBar
        android:id="@+id/progress_bar"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:indeterminate="true"
        android:progressDrawable="@drawable/progress_bar"
        android:indeterminateDrawable="@drawable/progress_bar"
      />
    
    Run Code Online (Sandbox Code Playgroud)

这样您就可以通过thicknessRatio可绘制的属性控制边框的宽度