すでに水平方向のプログレスバーを作成しましたが、完全に機能します。バーの読み込み中に、カウントダウンを示すテキストビューまたはそれに類するものを真ん中に表示したいと思います。進捗ダイアログではなく、進捗バーがアクティビティ内にあり、カウントダウンタイマーが表示されることに注意してください。誰でも私を助けることができますか、これを行うための最良の方法は何ですか、どのようにこれを達成できますか?
ProgressBar
とTextView
がRelativeLayout
内にある場合、ProgressBar
にIDを与え、TextView
をProgressBar
に揃えることができます。それ。 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>
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>
それが私のために働いたものです:
<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>
これは、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>
アクティビティでは、次のメソッドを使用して、表示および非表示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();
}
その他をチェック
LinearLayoutをRelativeLayoutで設定し、RelativeLayoutをHeight&widthに等しくすることができます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>