J'ai déjà fait une barre de progression horizontale et cela fonctionne parfaitement. Je voudrais afficher une vue de texte ou quelque chose de similaire en plein milieu, affichant un compte à rebours pendant le chargement de la barre. Gardez à l'esprit que ce n'est pas une boîte de dialogue de progression, la barre de progression réside dans une activité et affiche un compte à rebours. Quelqu'un peut-il m'aider, quelle est la meilleure façon de le faire et comment puis-je accomplir cela?
Si votre ProgressBar
et TextView
sont dans une RelativeLayout
, vous pouvez donner un identifiant à la variable ProgressBar
, puis aligner la TextView
avec la ProgressBar
en utilisant cette. Il devrait ensuite apparaître au-dessus de ProgressBar
. Assurez-vous que l’arrière-plan est transparent pour que vous puissiez toujours voir la ProgressBar
Par exemple:
<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>
Vous pouvez utiliser un FrameLayout pour afficher le TextView sur le ProgressBar:
...
<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>
c'est ce qui a fonctionné pour moi:
<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>
Voici ce que j’utilisais pour afficher le texte de progression au-dessus d’une visionneuse centrée sur une vue 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>
Dans Activity, vous pouvez afficher et ignorer ProgressBar en utilisant les méthodes suivantes
// 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();
}
Vérifier autre