你需要一个ProgressBar。
这是一个自定义示例。
<ProgressBar style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="7dip"
android:id="@+id/pop1000Bar"
android:max="1000"
android:progress="500"
android:progressDrawable="@drawable/progressbarlayers"
>
</ProgressBar>
progressbarlayers 是一个 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>
<corners android:radius="5dip" />
<gradient
android:startColor="#ff9d9e9d"
android:centerColor="#ff5a5d5a"
android:centerY="0.75"
android:endColor="#ff747674"
android:angle="270"
/>
</shape>
</item>
<item
android:id="@android:id/progress"
>
<clip>
<shape>
<corners
android:radius="5dip" />
<gradient
android:startColor="#A9F505"
android:endColor="#FFF700"
android:angle="270" />
</shape>
</clip>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<size android:height="3dip"/>
<gradient
android:startColor="#80ffd300"
android:centerColor="#80ffb600"
android:centerY="0.75"
android:endColor="#a0ffcb00"
android:angle="270"
/>
</shape>
</clip>
</item>
<item
android:id="@android:id/progress"
>
<clip>
<shape>
<corners
android:radius="5dip" />
<gradient
android:startColor="#A9F505"
android:endColor="#FFF700"
android:angle="270" />
</shape>
</clip>
</item>
</layer-list>
它看起来像这样:
但是你可以让它看起来像你需要的任何东西。
编辑:有很多方法可以让你获得文字。如果您的父布局是RelativeLayout,您可以在进度条顶部堆叠一个TextView,并在每次更新进度时在文本视图上调用setText。可能更好的方法是子类 ProgressBar 为您绘制它。这是一个例子。他们只是创建了一个扩展 ProgressBar 的新视图,并覆盖 onDraw 以每次在画布上绘制一些文本以及绘制条形图和背景。