我正在尝试在我们正在处理的应用程序中创建自定义进度条,我需要的最后一块是进度指示器本身.相反,我想让条形圆形就像进度条本身的左手边和右手边一样,就像在第二个图像中一样(当然减去红色圆圈).


这是进度条的布局定义(为简洁起见,省略了布局文件的其余部分):
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:padding="3dp"
android:max="100"
android:progressDrawable="@drawable/progress_bar_states"
android:layout_marginTop="10dp"
style="?android:attr/progressBarStyleHorizontal"
android:indeterminateOnly="false"
android:layout_below="@id/textview2"
android:layout_alignLeft="@id/textview2"
/>
Run Code Online (Sandbox Code Playgroud)
这是progress_bar_states.xml文件:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<solid android:color="#20ffff00"/>
<corners android:radius="60dp"/>
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#20ffffff"/>
<corners android:radius="60dp"/>
</shape>
</clip>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?我没有看到任何选项允许我根本定义进度指示器.我应该以不同的方式做这件事吗?我在Android上仍然很新,所以任何指导都表示赞赏.
@Ando - 您的解决方案非常接近我的需求.指标运动的开始现在是问题,我猜它是因为它不像原始的那样.当指标开始,并在开始时达到某一点,看起来它被"挤压"

直到它到达适当的点然后它看起来很好:

我们如何使用此解决方案在一开始就完成"裁剪"?
对于@bladefury - 正如您所看到的,与上图中的前沿相比,它确实看起来很平坦.

编辑:在看了很长一段时间之后,我在https://github.com/akexorcist/Android-RoundCornerProgressBar/issues看了一个新的组件,它和这里的建议有同样的问题.