2

简单地说,我有一个带有文本的进度条,如下所示:

<ProgressBar
    android:id="@+id/progressbar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"    
     />

<TextView
    android:id="@+id/text_on_progressbar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/progressbar"
    android:layout_alignLeft="@+id/progressbar"
    android:text="text"
/>

问题是,我希望“文本”只直接出现在当前进度的左侧。因此,它对当前端点是正确的。关于如何做到这一点的任何想法?因此,文本随着进度而移动。

那么有没有办法找到显示进度的当前端点的像素坐标呢?这样我就可以动态地将 textview 放在那里。

或者有没有办法实际访问progressbar.xml 本身来编辑它?

4

1 回答 1

3

您可以根据视图的完整宽度和当前进度计算显示进度的端点。简单示例:如果视图为 400 像素宽且进度为 50%,则端点将是 400 的 50%,即 200(当然加上进度视图的左侧位置,例如边距或填充...)

于 2012-09-17T19:06:02.340 回答