這是我的兩個解決方案。
簡短回答:
而不是創建一個 layer-list,我把它分成兩個文件。 一個用於 ProgressBar,一個用於它的背景。
這是 ProgressDrawable 文件( @drawable文件夾): circular_progress_bar.xml<?xml version="1.0" encoding="utf-8"?>
android:fromDegrees="270"
android:toDegrees="270">
android:innerRadiusRatio="2.5"
android:shape="ring"
android:thickness="1dp"
android:useLevel="true">
android:angle="0"
android:endColor="#007DD6"
android:startColor="#007DD6"
android:type="sweep"
android:useLevel="false"/>
這是它的background ( @drawable文件夾): circle_shape.xml<?xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadiusRatio="2.5"
android:thickness="1dp"
android:useLevel="false">
最後,在你正在使用的布局中:
android:id="@+id/progressBar"
android:layout_width="200dp"
android:layout_height="200dp"
android:indeterminate="false"
android:progressDrawable="@drawable/circular_progress_bar"
android:background="@drawable/circle_shape"
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
android:progress="65"/>
以下是結果:
長答案:
視圖類的子類,一個服裝視圖
下面是github上的完整項目