Progressbar android里面有文字

时间:2014-02-27 09:42:02

标签: android android-progressbar

我有一个循环ProgressBar,我希望在这个圆形栏内,以百分比形式写出进度(如60%或70%..)
如何在循环ProgressBar

中完成此操作
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

        <ProgressBar
            android:id="@+id/progressBars"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_centerInParent="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="20dp"
            android:indeterminate="false"
            android:indeterminateDrawable="@drawable/progress_bar"
            android:max="100" />
    </RelativeLayout>

3 个答案:

答案 0 :(得分:7)

你应该试试这个:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent" android:layout_height="match_parent" >

    <ProgressBar
        android:id="@+id/myProgress"
        android:layout_width="match_parent" android:layout_height="match_parent" />

    <TextView
        android:id="@+id/myTextProgress"
        android:layout_alignLeft="@id/myProgress" android:layout_alignTop="@id/myProgress"
        android:layout_alignRight="@id/myProgress" android:layout_alignBottom="@id/myProgress"
        android:background="@android:color/transparent" >

</RelativeLayout>  

您也可以将centerInParent设置为true,参见this 有关详细信息,请参阅this tutorialthis one以显示您的百分比 希望这会有所帮助。

答案 1 :(得分:2)

我认为不可以直接实现。您应该覆盖onDraw内的ProgressBar,并使用Canvas.drawText来确定文本的位置。 Here您可以找到drwawText的文档:

  

x和y是正在绘制的文本原点的坐标

答案 2 :(得分:0)

onDraw方式在Android版本和设备之间提出了一系列挑战。我特别喜欢使用RelativeLayoutFrameLayout。如果需要,可以在各种dpi中使用样式以确保UX的一致性。