web-dev-qa-db-ja.com

Android-進行状況バーの中央にテキストを表示する

すでに水平方向のプログレスバーを作成しましたが、完全に機能します。バーの読み込み中に、カウントダウンを示すテキストビューまたはそれに類するものを真ん中に表示したいと思います。進捗ダイアログではなく、進捗バーがアクティビティ内にあり、カウントダウンタイマーが表示されることに注意してください。誰でも私を助けることができますか、これを行うための最良の方法は何ですか、どのようにこれを達成できますか?

29
ahmad

ProgressBarTextViewRelativeLayout内にある場合、ProgressBarにIDを与え、TextViewProgressBarに揃えることができます。それ。 ProgressBarの上に表示されます。 ProgressBarが表示されるように、背景が透明であることを確認してください

例えば:

<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:layout_width="match_parent"
        Android:layout_height="match_parent"
        // other attributes
        Android:id="@+id/PROGRESS_BAR"
    >
    <TextView
        Android:background="#00000000" // transparent
        // other attributes
        Android:layout_alignLeft="@id/PROGRESS_BAR"
        Android:layout_alignTop="@id/PROGRESS_BAR"
        Android:layout_alignRight="@id/PROGRESS_BAR"
        Android:layout_alignBottom="@id/PROGRESS_BAR"
    >
</RelativeLayout>
38
Matt Harris

FrameLayoutを使用して、ProgressBarにTextViewを表示できます。

...
<FrameLayout
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <ProgressBar
        Android:id="@+id/progress"
        style="@Android:style/Widget.ProgressBar.Horizontal"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:progressDrawable="@drawable/progressbar" />

    <RelativeLayout
        Android:layout_width="match_parent"
        Android:layout_height="match_parent">

        <TextView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_centerVertical="true" />
        ...
    </RelativeLayout>
</FrameLayout>
12
Yann

それが私のために働いたものです:

             <RelativeLayout
                    Android:layout_width="match_parent"
                    Android:layout_height="match_parent">
                  <ProgressBar
                      Android:id="@+id/progressBar"
                      style="@Android:style/Widget.ProgressBar.Horizontal"
                      Android:progressDrawable="@drawable/customprogressbar"
                      Android:layout_width="match_parent"
                      Android:layout_height="match_parent"
                      Android:max="100"/>

                  <TextView
                      Android:id="@+id/progressBarinsideText"
                      Android:layout_width="wrap_content"
                      Android:layout_height="wrap_content"
                      Android:layout_alignParentLeft="true"
                      Android:layout_alignParentRight="true"
                      Android:layout_centerVertical="true"
                      Android:gravity="center"
                    />
              </RelativeLayout>
4
Roy Doron

これは、Webビューを中心としたスピナーの上に進行状況テキストを表示するために使用したものです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <WebView
        Android:id="@+id/help_webview"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:background="#F22"
        Android:scrollbars="none" />


    <ProgressBar
        Android:id="@+id/progressBar"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_centerHorizontal="true"
        Android:layout_centerInParent="true"
        Android:layout_centerVertical="true" />

    <TextView
        Android:id="@+id/progressBarMessage"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="Loading, please wait..."
        Android:layout_centerInParent="true"
        Android:layout_above="@id/progressBar"
        Android:background="#00000000" />


</RelativeLayout>
1
Casey Murray

ソースチュートリアル

アクティビティでは、次のメソッドを使用して、表示および非表示ProgressBarを実行できます。

// Method to show Progress bar
private void showProgressDialogWithTitle(String substring) {
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    //Without this user can hide loader by tapping outside screen
    progressDialog.setCancelable(false);
    progressDialog.setMessage(substring);
    progressDialog.show();
}

// Method to hide/ dismiss Progress bar
private void hideProgressDialogWithTitle() {
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    progressDialog.dismiss();
}

その他をチェック

0
Code Spy

LinearLayoutRelativeLayoutで設定し、RelativeLayoutをHeightwidthに等しくすることができますwrap_content次に、ProgressBarの下のTextViewにAndroidを追加します:layout_centerInParent = "true"

例:

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:orientation="vertical">
    <RelativeLayout
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center">
        <ProgressBar
            Android:id="@+id/progressBar"
            Android:layout_width="200dp"
            Android:layout_height="200dp"
            Android:max="100"
            Android:progress="65" />
        <TextView
            Android:layout_height="wrap_content"
            Android:layout_width="wrap_content"
            Android:layout_centerInParent="true"
            Android:textColor="@color/white"
            Android:text="6:00 AM"
            Android:textSize="25sp"
            Android:textStyle="bold"/>
    </RelativeLayout>
</LinearLayout>
0
Yousef Elsayed