android - 如何使进度条进度从边缘四舍五入?
问题描述
我正在制作圆形和渐变色的自定义进度条。我实现了它,但使它从边缘变圆是行不通的。
这是我的进度条
<ProgressBar
android:id="@+id/progress1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="250dp"
android:layout_height="250dp"
android:indeterminate="false"
android:max="100"
android:progress="80"
android:progressDrawable="@drawable/bg_progressbar_1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
这是可绘制的
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/progress"
android:top="2dp"
android:bottom="2dp"
android:left="2dp"
android:right="2dp">
<rotate
android:fromDegrees="90"
android:toDegrees="90"
android:pivotX="50%"
android:pivotY="50%" >
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thickness="15dp" >
<gradient
android:centerColor="#e62a77"
android:endColor="#d5302a"
android:startColor="#ff006d"
android:type="sweep" />
<corners android:radius="8dp"/>
</shape>
</rotate>
</item>
我用<corners android:radius="8dp"/>
了还是不行。
解决方案
请尝试以下代码
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<rotate android:fromDegrees="270" android:toDegrees="270">
<shape
android:innerRadiusRatio="2.55"
android:shape="ring"
android:thickness="15dp"
android:useLevel="true">
<gradient
android:centerColor="#e62a77"
android:endColor="#d5302a"
android:startColor="#ff006d"
android:type="sweep" />
</shape>
</rotate>
</item>
<item android:bottom="211dp">
<shape
android:innerRadiusRatio="1000"
android:shape="ring"
android:thickness="7dp"
android:useLevel="false">
<solid android:color="#ff006d" />
</shape>
</item>
<item>
<rotate>
<inset android:insetBottom="211dp">
<shape
android:innerRadiusRatio="1000"
android:shape="ring"
android:thickness="7dp"
android:useLevel="false">
<solid android:color="#d5302a" />
</shape>
</inset>
</rotate>
</item>
</layer-list>
参考:https ://stackoverflow.com/a/56905735/6997819
它使用三个项目
1) 起点圈
2) 沿着进度移动的圆圈
3)主要进展路线
检查结果图片
推荐阅读
- office-store - 更新插件的测试说明
- quantum-computing - Q# 中的多项式方程 E=MC^2
- typescript - 解析 TypeScript 以生成简单的调用图
- shell - 如何在 GNU bash 中检查输入是数字还是字母
- javascript - 路由更改时组件未加载
- javascript - Javascript 正则表达式允许数字和特殊字符,如点 (.) 和冒号 (:) 来验证特定主机名
- c# - 将另一种类型分配给特定类型
- c - 如果我之前使用 memset,我还需要将 ptr 设置为 NULL 吗?
- python-3.x - 将列中的整数值模式转换为组
- java - MongoDB Group 操作返回文档而不是单个字段