【发布时间】:2014-08-05 02:36:32
【问题描述】:
我正在尝试在我们正在开发的应用中创建自定义进度条,而我需要的最后一块是进度指示器本身。相反,我希望该栏像进度条本身的左右边缘一样圆润,就像在第二张图片中一样(当然减去红色圆圈)。
这是进度条的布局定义(为简洁起见,布局文件的其余部分省略):
<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 看了一个新组件,它和这里的建议有同样的问题。
【问题讨论】:
-
我不明白你的担忧。 android:progress=".." 应该可以正常工作。您也可以将其设置为“不确定”
-
我不是指增加进度 - 我是在谈论进度的呈现。而不是像你通常在进度条中看到的垂直“条”,我希望它是一个圆形指示器,以匹配条本身的外部边界。我会尝试用我想要的图像来更新问题。
标签: android android-progressbar