Android - Progress Circle
Il modo più semplice per creare un cerchio di progresso è utilizzare una classe chiamata ProgressDialog. La barra di caricamento può essere realizzata anche tramite quella classe. L'unica differenza logica tra barra e cerchio è che il primo viene utilizzato quando si conosce il tempo totale di attesa per una determinata attività mentre il secondo viene utilizzato quando non si conosce il tempo di attesa.
A tal fine, è necessario creare un'istanza di un oggetto di questa classe. La sua sintassi è.
ProgressDialog progress = new ProgressDialog(this);
Ora puoi impostare alcune proprietà di questa finestra di dialogo. Ad esempio, il suo stile, il suo testo ecc
progress.setMessage("Downloading Music :) ");
progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progress.setIndeterminate(true);
Oltre a questi metodi, esistono altri metodi forniti dalla classe ProgressDialog.
Suor n | Classi e descrizione |
---|---|
1 | getMax() Questo metodo restituisce il valore massimo dell'avanzamento |
2 | incrementProgressBy(int diff) Questo metodo incrementa la barra di avanzamento in base alla differenza del valore passato come parametro |
3 | setIndeterminate(boolean indeterminate) Questo metodo imposta l'indicatore di avanzamento come determinato o indeterminato |
4 | setMax(int max) Questo metodo imposta il valore massimo della finestra di dialogo di avanzamento |
5 | setProgress(int value) Questo metodo viene utilizzato per aggiornare la finestra di dialogo di avanzamento con un valore specifico |
6 | show(Context context, CharSequence title, CharSequence message) Questo è un metodo statico, utilizzato per visualizzare la finestra di dialogo di avanzamento |
Esempio
Questo esempio dimostra l'uso a rotazione della finestra di dialogo di avanzamento. Visualizza una finestra di dialogo di avanzamento della rotazione premendo il pulsante.
Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo effettivo dopo aver sviluppato l'applicazione in base ai passaggi seguenti.
Passi | Descrizione |
---|---|
1 | Utilizzerai Android Studio per creare un'applicazione Android con un pacchetto com.example.sairamkrishna.myapplication. |
2 | Modificare il file src / MainActivity.java per aggiungere il codice di avanzamento per visualizzare la finestra di dialogo di avanzamento della rotazione. |
3 | Modifica il file res / layout / activity_main.xml per aggiungere il rispettivo codice XML. |
4 | Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati. |
Di seguito è riportato il contenuto del file di attività principale modificato src/MainActivity.java.
package com.example.sairamkrishna.myapplication;
import android.app.ProgressDialog;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
Button b1;
private ProgressDialog progressBar;
private int progressBarStatus = 0;
private Handler progressBarbHandler = new Handler();
private long fileSize = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressBar = new ProgressDialog(v.getContext());
progressBar.setCancelable(true);
progressBar.setMessage("File downloading ...");
progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressBar.setProgress(0);
progressBar.setMax(100);
progressBar.show();
progressBarStatus = 0;
fileSize = 0;
new Thread(new Runnable() {
public void run() {
while (progressBarStatus < 100) {
progressBarStatus = downloadFile();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
progressBarbHandler.post(new Runnable() {
public void run() {
progressBar.setProgress(progressBarStatus);
}
});
}
if (progressBarStatus >= 100) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
progressBar.dismiss();
}
}
}).start();
}
});
}
public int downloadFile() {
while (fileSize <= 1000000) {
fileSize++;
if (fileSize == 100000) {
return 10;
}else if (fileSize == 200000) {
return 20;
}else if (fileSize == 300000) {
return 30;
}else if (fileSize == 400000) {
return 40;
}else if (fileSize == 500000) {
return 50;
}else if (fileSize == 700000) {
return 70;
}else if (fileSize == 800000) {
return 80;
}
}
return 100;
}
}
Modifica il contenuto di res/layout/activity_main.xml al seguente
Nel codice seguente abc indica il logo di tutorialspoint.com
<?xml version="1.0" encoding="utf-8"?>
<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" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView android:text="Music Palyer" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textSize="35dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point"
android:id="@+id/textView"
android:layout_below="@+id/textview"
android:layout_centerHorizontal="true"
android:textColor="#ff7aff24"
android:textSize="35dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="download"
android:id="@+id/button"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="112dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/abc"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Modifica il file res/values/string.xml al seguente
<resources>
<string name="app_name">My Application</string>
</resources>
Questa è l'impostazione predefinita AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairamkrishna.myapplication" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.sairamkrishna.myapplication.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Proviamo a eseguire la tua applicazione. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Prima di avviare l'applicazione, Android Studio visualizzerà la seguente finestra per selezionare un'opzione in cui si desidera eseguire l'applicazione Android.
Basta premere il pulsante per avviare la finestra di dialogo di avanzamento. Dopo aver premuto, apparirà la seguente schermata.