我正在尝试在我们正在开发的应用中创建自定义进度条,而我需要的最后一 block 是进度指示器本身。相反,我希望该栏像进度条本身的左右边缘一样圆润,就像在第二张图片中一样(当然减去红色圆圈)。
这是进度条的布局定义(为简洁起见,布局文件的其余部分省略):
<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"
/>
这里是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>
我该怎么做?我根本看不到任何允许我定义进度指示器的选项。我应该以不同的方式这样做吗?我对 Android 还是很陌生,因此我们非常感谢任何指导。
@Ando - 您的解决方案非常接近我的需要。指标运动的开始是现在的问题,我猜这是因为它不像原始剪辑那样。当指标开始时,直到开始的某个点,它看起来像是被“挤压”了
直到它到达适当的点然后它看起来很好:
我们如何使用这个解决方案在开始时完成“剪辑”?
对于@bladefury - 如您所见,与上图的前缘相比,它确实看起来是扁平的。
编辑:在很长一段时间没有看这个之后,我在 https://github.com/akexorcist/Android-RoundCornerProgressBar/issues 上查看了一个新组件,和这里的建议有同样的问题。
最佳答案
只需更改您的 progress_bar_states.xml 文件:如下例所示
<?xml version="1.0" encoding="utf-8"?>
<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="20dp" />
</shape>
</item>
<item android:id="@android:id/progress">
<!-- <clip> -->
<!-- <shape> -->
<!-- <solid android:color="@android:color/black" /> -->
<!-- <corners -->
<!-- android:bottomRightRadius="30dp" -->
<!-- android:radius="60dp" -->
<!-- android:topRightRadius="30dp" /> -->
<!-- </shape> -->
<!-- </clip> -->
<scale
android:drawable="@drawable/custom_progress_primary"
android:scaleWidth="98%" /><!-- change here -->
</item>
这里是 custom_progress_primary.xml 文件:如下所示
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:radius="20dp"
android:topLeftRadius="20dp"
android:topRightRadius="20dp" />
<solid android:color="@android:color/white" />
<stroke
android:width="1dp"
android:color="@android:color/darker_gray" />
</shape>
关于android - 圆形进度条内的圆形进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25130359/