سؤال

I have a circular ProgressBar, I want inside this circular bar, write the progression in percentage (like 60 %, or 70 %..)
How can I do this inside the circular 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>
هل كانت مفيدة؟

المحلول

I do not think is directly achievable. You should override onDraw inside ProgressBar, and use Canvas.drawText to decide where the text should be positioned . Here you can find the documentation for drwawText:

x and y are the coordinates of the origin of the text being drawn

نصائح أخرى

You should try this:

<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>  

You also can with the centerInParent set to true, see this.
And see this tutorial or this one for more info to display your percentage.
Hope this will help.

The onDraw way presents its own set of challenges between Android versions and devices. I have particularly liked using a RelativeLayout or FrameLayout. If need be, use styles across various dpi's for consistency in UX.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top