【发布时间】:2021-02-04 10:51:17
【问题描述】:
我的水平进度条有一个可绘制的自定义进度
下面是进度条:
<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"
下面是可绘制的进度条:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background">
<shape>
<stroke
android:width="3px"
android:color="#648A5E" />
<corners android:radius="5dp"
android:color="#d6f0d6"/>
<gradient
android:angle="270"
android:centerColor="#d6f0d6"
android:centerY="0.5"
android:endColor="#d6f0d6"
android:startColor="#d6f0d6" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<stroke
android:width="3px"
android:color="#648A5E" />
<corners android:radius="5dp"
android:color="#d6f0d6"/>
<gradient
android:angle="270"
android:centerColor="#d6f0d6"
android:centerY="0.5"
android:endColor="#d6f0d6"
android:startColor="#d6f0d6" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<scale android:scaleWidth="100%">
<shape>
<stroke
android:width="3px"
android:color="#B1707C" />
<corners android:radius="5dp"
android:color="#fce0e6"/>
<gradient
android:angle="0"
android:endColor="#fce0e6"
android:startColor="#fce0e6" />
</shape>
</scale>
</item>
</layer-list>
以下是我尝试以编程方式创建自定义进度可绘制的代码
Drawable bckgrndDr = new ColorDrawable(Color.parseColor("#e1203e"));
Drawable secProgressDr = new ColorDrawable(Color.parseColor("#eeeeee"));
Drawable progressDr = new ScaleDrawable(new ColorDrawable(Color.BLUE), Gravity.LEFT, 1, -1);
LayerDrawable resultDr = new LayerDrawable(new Drawable[] { bckgrndDr, secProgressDr, progressDr });
resultDr.setId(0, android.R.id.background);
resultDr.setId(1, android.R.id.secondaryProgress);
resultDr.setId(2, android.R.id.progress);
progressBar.setProgressDrawable(resultDr);
progressBar.setProgress(40);
我无法为 id 背景、secondaryProgress 和 progress 设置描边、角和渐变。 请建议我应该如何以编程方式创建和更改整个自定义进度可绘制的颜色。
【问题讨论】:
-
也许这可以帮助你。 stackoverflow.com/q/2020882/12649010
标签: android android-progressbar