dev*_*v90 7 android android-layout android-progressbar android-constraintlayout
我在布局中添加了一个进度条,如下所示,我还为其添加了颜色,并且效果很好。
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="50dp"
android:layout_height="50dp"
android:indeterminate="true"
android:indeterminateTintMode="src_atop"
android:indeterminateTint="@color/color"
android:layout_gravity="center_vertical|center_horizontal"
android:visibility="visible"
/>
Run Code Online (Sandbox Code Playgroud)
但我需要在上面添加渐变颜色。我在颜色文件夹中添加了渐变,如下所示。
<gradient android:type="linear"
android:angle="0"
android:startColor="#dc0336"
android:endColor="#ff7f00"
xmlns:android="http://schemas.android.com/apk/res/android" />
Run Code Online (Sandbox Code Playgroud)
然后我将这个颜色分配给Progressbar
android:indeterminateTint="@color/gradientColor"
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我需要知道一种方法来添加渐变progressBar
这是一个迟到的答案,但我认为这会对其他人有所帮助。只需尝试遵循代码即可。
可绘制/加载进度条
<?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="1440">
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="10"
android:useLevel="false">
<size
android:width="60dp"
android:height="60dp" />
<gradient
android:centerColor="#b43787"
android:centerY="0.50"
android:endColor="#7036a3"
android:startColor="#f0376f"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
Run Code Online (Sandbox Code Playgroud)
活动主文件
<ProgressBar
android:id="@+id/loading_progress"
android:layout_width="130dp"
android:layout_height="130dp"
android:indeterminateDrawable="@drawable/loading_progressbar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
Run Code Online (Sandbox Code Playgroud)
结果
您应该使用android:progressDrawable而不是android:indeterminateTint.
您的代码应如下所示:
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="50dp"
android:layout_height="50dp"
android:indeterminate="true"
android:indeterminateTintMode="src_atop"
android:progressDrawable="@drawable/gradientDrawable"
android:layout_gravity="center_vertical|center_horizontal"
android:visibility="visible"
/>
Run Code Online (Sandbox Code Playgroud)
使用以下内容作为渐变 Drawable。将文件命名为gradientDrawable.xml并将其放置在drawable目录下。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadiusRatio="3.5"
android:shape="ring"
android:thickness="2.5dp"
android:useLevel="false">
<gradient
android:angle="0"
android:endColor="#ff7f00"
android:startColor="#dc0336"
android:type="linear" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我测试了你的渐变,它看起来像这样:
| 归档时间: |
|
| 查看次数: |
5708 次 |
| 最近记录: |