Android如何以编程方式更改进度可绘制颜色
我有一个自定义的进度画为我的水平进度条 以下是进度条:Android如何以编程方式更改进度可绘制颜色,android,android-progressbar,Android,Android Progressbar,我有一个自定义的进度画为我的水平进度条 以下是进度条: <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:progress="20" android:layout_width="0dp"
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:progress="20"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_marginTop="32dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
我无法设置id背景、次要进度和进度的笔划、转角和渐变。
请建议我应该如何通过编程创建和更改整个自定义可绘制进度的颜色。您可以将此示例用作进度条
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerInParent="true"
android:indeterminate="false"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/custom_progressbar_drawable"
android:secondaryProgress="0" />
然后为custom_progressbar_drawable创建一个可绘制资源文件
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="-90"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="270" >
<shape
android:shape="ring"
android:thickness="5.5dp"
android:useLevel="false" >
<gradient
android:centerY="0.5"
android:endColor="@color/grad"
android:startColor="@color/light_blue"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
也许这可以帮助您。我需要更改程序,因为颜色来自服务器
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerInParent="true"
android:indeterminate="false"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/custom_progressbar_drawable"
android:secondaryProgress="0" />
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="-90"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="270" >
<shape
android:shape="ring"
android:thickness="5.5dp"
android:useLevel="false" >
<gradient
android:centerY="0.5"
android:endColor="@color/grad"
android:startColor="@color/light_blue"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>