Come creare una barra di avanzamento circolare in Android che ruota su di essa?


154

Sto cercando di creare una barra di avanzamento arrotondata. Questo è quello che voglio ottenere

C'è un anello di sfondo di colore grigio. Inoltre, viene visualizzata una barra di avanzamento di colore blu che si sposta in un percorso circolare da 0 a 360 in 60 o in qualsiasi quantità di secondi.

inserisci qui la descrizione dell'immagine

Ecco il mio codice di esempio.

<ProgressBar
            android:id="@+id/ProgressBar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            style="?android:attr/progressBarStyleLarge"
            android:indeterminateDrawable="@drawable/progressBarBG"
            android:progress="50"
            />

Per fare questo, nel disegnabile "progressBarBG", sto creando una lista di livelli e all'interno di quella lista di livelli sto dando due elementi come mostrato.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
    <shape
            android:shape="ring"
            android:innerRadius="64dp"
            android:thickness="8dp"
            android:useLevel="false">

        <solid android:color="@color/grey" />
    </shape>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape
                android:shape="ring"
                android:innerRadius="64dp"
                android:thickness="8dp"
                android:useLevel="false">

            <solid android:color="@color/blue" />
        </shape>
    </clip>
</item>

Ora, il primo anello grigio viene generato bene. L'anello blu inizia tuttavia da sinistra del disegno e va a destra proprio come funziona una barra di avanzamento lineare. Ecco come mostra l'avanzamento del 50% con la freccia di colore rosso che indica la direzione.

inserisci qui la descrizione dell'immagine

Voglio spostare la barra di avanzamento blu nel percorso circolare come previsto.


9
Non sono sicuro del motivo per cui sei stato votato in basso, sembra un po 'ingiusto.
BenjaminPaul,

1
Ho guardato prima di pubblicare questa domanda. Ho trovato alcune risposte ma non hanno funzionato per quello che sto cercando di ottenere. Forse qualcuno mi ha declassato pensando che questo sia un post duplicato.
Saurav Srivastava,

1
forse questo può
indicarti

1
puoi usare questa libreria github.com/emre1512/CircleProgressBar
Zapdos

1
Vorresti per favore premiare una delle persone generose che hanno cercato di trovare una soluzione per te per i suoi grandi sforzi accettando una delle risposte fornite?
CEO tech4lifeapps

Risposte:


324

Ecco le mie due soluzioni.

Risposta breve:

Invece di creare un layer-list, l'ho separato in due file. Uno per ProgressBare uno per il suo background.

Questo è il ProgressDrawablefile (cartella @drawable): circular_progress_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="270"
    android:toDegrees="270">
    <shape
        android:innerRadiusRatio="2.5"
        android:shape="ring"
        android:thickness="1dp"
        android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 -->

        <gradient
            android:angle="0"
            android:endColor="#007DD6"
            android:startColor="#007DD6"
            android:type="sweep"
            android:useLevel="false" />
    </shape>
</rotate>

E questo è per la sua background(cartella @drawable): circle_shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:innerRadiusRatio="2.5"
    android:thickness="1dp"
    android:useLevel="false">

    <solid android:color="#CCC" />

</shape>

E alla fine, all'interno del layout che stai lavorando:

<ProgressBar
        android:id="@+id/progressBar"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:indeterminate="false"
        android:progressDrawable="@drawable/circular_progress_bar"
        android:background="@drawable/circle_shape"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"
        android:progress="65" />

Ecco il risultato:

risultato 1

Risposta lunga:

Utilizzare una vista personalizzata che eredita il file android.view.View

risultato 2

Ecco il progetto completo su github


@Pedram Come devo impostare la percentuale sulla barra di avanzamento? Come ad esempio, attualmente avrebbe il 50%. Come devo impostare il 50% sulla barra di avanzamento?

@ 20 centesimi, leggi la documentazione, dovresti ottenere un riferimento alla barra di avanzamento e chiamare il suo setProgressmetodo quindi passare il valore. google.com/…
M. Reza Nasirloo,

Sono impazzito cercando di trovare i valori corretti, dozzine rosse di argomenti stackoverflow, solo per trovare la soluzione qui .. android:fromDegrees="270" android:toDegrees="270"risolto !! Grazie molto!
Henrique de Sousa,

@Skynet Sì, e non ho provato a risolverlo perché preferisco crearne uno completamente personalizzato estendendo View Class developer.android.com/training/custom-views/index.html
M. Reza Nasirloo

1
@MimArmand Ehi grazie, in realtà ricomincia a funzionare nell'aggiornamento 5.1 di lollipop, e quella riga risolve il problema per api 21.
M. Reza Nasirloo,

23

Ho fatto in modo semplice:

Si prega di controllare la schermata per lo stesso.

CustomProgressBarActivity.java :

public class CustomProgressBarActivity extends AppCompatActivity {

    private TextView txtProgress;
    private ProgressBar progressBar;
    private int pStatus = 0;
    private Handler handler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_custom_progressbar);

        txtProgress = (TextView) findViewById(R.id.txtProgress);
        progressBar = (ProgressBar) findViewById(R.id.progressBar);

        new Thread(new Runnable() {
            @Override
            public void run() {
                while (pStatus <= 100) {
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            progressBar.setProgress(pStatus);
                            txtProgress.setText(pStatus + " %");
                        }
                    });
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    pStatus++;
                }
            }
        }).start();

    }
}

activity_custom_progressbar.xml :

<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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.skholingua.android.custom_progressbar_circular.MainActivity" >


    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content">

        <ProgressBar
            android:id="@+id/progressBar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="250dp"
            android:layout_height="250dp"
            android:layout_centerInParent="true"
            android:indeterminate="false"
            android:max="100"
            android:progress="0"
            android:progressDrawable="@drawable/custom_progressbar_drawable"
            android:secondaryProgress="0" />


        <TextView
            android:id="@+id/txtProgress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/progressBar"
            android:layout_centerInParent="true"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    </RelativeLayout>



</RelativeLayout>

custom_progressbar_drawable.xml :

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="-90"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="270" >

    <shape
        android:shape="ring"
        android:useLevel="false" >
        <gradient
            android:centerY="0.5"
            android:endColor="#FA5858"
            android:startColor="#0099CC"
            android:type="sweep"
            android:useLevel="false" />
    </shape>

</rotate>

Spero che questo ti possa aiutare.


Ciao Hiren, sto provando a visualizzare solo due colori nella vista. Rosso e verde Ma vedo anche un po 'di rosso e verde nel cerchio. Come posso rimuoverlo?
Lokesh Pandey,

20

Ho scritto un esempio dettagliato sulla barra di avanzamento circolare in Android qui sul mio blog demonuts.com . Puoi anche trovare il codice sorgente completo e la spiegazione lì.

Ecco come ho creato la barra di avanzamento circolare con percentuale all'interno del cerchio in puro codice senza alcuna libreria.

inserisci qui la descrizione dell'immagine

prima crea un file disegnabile chiamato circular.xml

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/secondaryProgress">
        <shape
            android:innerRadiusRatio="6"
            android:shape="ring"
            android:thicknessRatio="20.0"
            android:useLevel="true">


            <gradient
                android:centerColor="#999999"
                android:endColor="#999999"
                android:startColor="#999999"
                android:type="sweep" />
        </shape>
    </item>

    <item android:id="@android:id/progress">
        <rotate
            android:fromDegrees="270"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toDegrees="270">

            <shape
                android:innerRadiusRatio="6"
                android:shape="ring"
                android:thicknessRatio="20.0"
                android:useLevel="true">


                <rotate
                    android:fromDegrees="0"
                    android:pivotX="50%"
                    android:pivotY="50%"
                    android:toDegrees="360" />

                <gradient
                    android:centerColor="#00FF00"
                    android:endColor="#00FF00"
                    android:startColor="#00FF00"
                    android:type="sweep" />

            </shape>
        </rotate>
    </item>
</layer-list>

Ora nella tua activity_main.xml aggiunta seguente:

  <?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:background="@color/dialog"
    tools:context="com.example.parsaniahardik.progressanimation.MainActivity">

    <ProgressBar

        android:id="@+id/circularProgressbar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:indeterminate="false"
        android:max="100"
        android:progress="50"
        android:layout_centerInParent="true"
        android:progressDrawable="@drawable/circular"
        android:secondaryProgress="100"
        />

    <ImageView
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:background="@drawable/whitecircle"
        android:layout_centerInParent="true"/>

    <TextView
        android:id="@+id/tv"
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:gravity="center"
        android:text="25%"
        android:layout_centerInParent="true"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="20sp" />

</RelativeLayout>

In activity_main.xmlho usato un'immagine circolare con sfondo bianco per mostrare lo sfondo bianco attorno alla percentuale. Ecco l'immagine:

inserisci qui la descrizione dell'immagine

Puoi cambiare il colore di questa immagine per impostare un colore personalizzato attorno al testo percentuale.

Ora finalmente aggiungi il seguente codice a MainActivity.java:

import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.animation.DecelerateInterpolator;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    int pStatus = 0;
    private Handler handler = new Handler();
    TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Resources res = getResources();
        Drawable drawable = res.getDrawable(R.drawable.circular);
        final ProgressBar mProgress = (ProgressBar) findViewById(R.id.circularProgressbar);
        mProgress.setProgress(0);   // Main Progress
        mProgress.setSecondaryProgress(100); // Secondary Progress
        mProgress.setMax(100); // Maximum Progress
        mProgress.setProgressDrawable(drawable);

      /*  ObjectAnimator animation = ObjectAnimator.ofInt(mProgress, "progress", 0, 100);
        animation.setDuration(50000);
        animation.setInterpolator(new DecelerateInterpolator());
        animation.start();*/

        tv = (TextView) findViewById(R.id.tv);
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                while (pStatus < 100) {
                    pStatus += 1;

                    handler.post(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            mProgress.setProgress(pStatus);
                            tv.setText(pStatus + "%");

                        }
                    });
                    try {
                        // Sleep for 200 milliseconds.
                        // Just to display the progress slowly
                        Thread.sleep(8); //thread will take approx 1.5 seconds to finish
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    }
}

Se vuoi creare una barra di avanzamento orizzontale, segui questo link, contiene molti esempi preziosi con il codice sorgente:
http://www.skholingua.com/android-basic/user-interface/form-widgets/progressbar


15

Ho realizzato una libreria Open Source su GitHub CircularProgressBar che fa esattamente quello che vuoi nel modo più semplice possibile:

Gif demo CircularProgressBar

USO

Per creare una ProgressBar circolare aggiungere CircularProgressBar nel XML del layout e aggiungere la libreria CircularProgressBar nel proiettore oppure è anche possibile afferrarla tramite Gradle:

compile 'com.mikhaellopez:circularprogressbar:1.0.0'

XML

<com.mikhaellopez.circularprogressbar.CircularProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:background_progressbar_color="#FFCDD2"
    app:background_progressbar_width="5dp"
    app:progressbar_color="#F44336"
    app:progressbar_width="10dp" />

È necessario utilizzare le seguenti proprietà nel proprio XML per modificare CircularProgressBar.

Proprietà:

  • app:progress (intero) >> impostazione predefinita 0
  • app:progressbar_color (colore) >> NERO predefinito
  • app:background_progressbar_color (colore) >> GRIGIO predefinito
  • app:progressbar_width (dimensione) >> default 7dp
  • app:background_progressbar_width (dimensione) >> predefinito 3dp

GIAVA

CircularProgressBar circularProgressBar = (CircularProgressBar)findViewById(R.id.yourCircularProgressbar);
circularProgressBar.setColor(ContextCompat.getColor(this, R.color.progressBarColor));
circularProgressBar.setBackgroundColor(ContextCompat.getColor(this, R.color.backgroundProgressBarColor));
circularProgressBar.setProgressBarWidth(getResources().getDimension(R.dimen.progressBarWidth));
circularProgressBar.setBackgroundProgressBarWidth(getResources().getDimension(R.dimen.backgroundProgressBarWidth));
int animationDuration = 2500; // 2500ms = 2,5s
circularProgressBar.setProgressWithAnimation(65, animationDuration); // Default duration = 1500ms

Fork o Scarica questa libreria qui >> https://github.com/lopspower/CircularProgressBar


Ci provo, è davvero fantastico, ma ora ho trovato un ascoltatore che cambia l'animazione. Conosci qualche modo?
Md Imran Choudhury,

@ lopez.mikhael Ehi, hai qualche idea su come aggiungere un'immagine tra la circolare?
hyperfkcb,

@DeniseTan puoi semplicemente usare un FrameLayout o un RelativeLayout per farlo.
lopez.mikhael,

8

Ecco una semplice visualizzazione personalizzata per l'avanzamento della cerchia di visualizzazione. Puoi modificare e ottimizzare di più per adattarlo al tuo progetto.

class CircleProgressBar @JvmOverloads constructor(
        context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
    private val backgroundWidth = 10f
    private val progressWidth = 20f

    private val backgroundPaint = Paint().apply {
        color = Color.LTGRAY
        style = Paint.Style.STROKE
        strokeWidth = backgroundWidth
        isAntiAlias = true
    }

    private val progressPaint = Paint().apply {
        color = Color.RED
        style = Paint.Style.STROKE
        strokeWidth = progressWidth
        isAntiAlias = true
    }

    var progress: Float = 0f
        set(value) {
            field = value
            invalidate()
        }

    private val oval = RectF()
    private var centerX: Float = 0f
    private var centerY: Float = 0f
    private var radius: Float = 0f

    override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
        centerX = w.toFloat() / 2
        centerY = h.toFloat() / 2
        radius = w.toFloat() / 2 - progressWidth
        oval.set(centerX - radius,
                centerY - radius,
                centerX + radius,
                centerY + radius)
        super.onSizeChanged(w, h, oldw, oldh)
    }

    override fun onDraw(canvas: Canvas?) {
        super.onDraw(canvas)
        canvas?.drawCircle(centerX, centerY, radius, backgroundPaint)
        canvas?.drawArc(oval, 270f, 360f * progress, false, progressPaint)
    }
}

Esempio usando

xml

<com.example.androidcircleprogressbar.CircleProgressBar
    android:id="@+id/circle_progress"
    android:layout_width="200dp"
    android:layout_height="200dp" />

Kotlin

class MainActivity : AppCompatActivity() {
    val TOTAL_TIME = 10 * 1000L

    override fun onCreate(savedInstanceState: Bundle?) {
        ...

        timeOutRemoveTimer.start()
    }

    private var timeOutRemoveTimer = object : CountDownTimer(TOTAL_TIME, 10) {
        override fun onFinish() {
            circle_progress.progress = 1f
        }

        override fun onTick(millisUntilFinished: Long) {
            circle_progress.progress = (TOTAL_TIME - millisUntilFinished).toFloat() / TOTAL_TIME
        }
    }
}

Risultato


5

Sono nuovo, quindi non posso commentare ma ho pensato di condividere la correzione pigra. Uso anche l'approccio originale di Pedram e mi sono imbattuto nello stesso problema di Lollipop. Ma alanv in un altro post aveva una correzione di una riga. È una specie di bug o svista in API21. Aggiungi letteralmente android:useLevel="true"alla tua cerchia progressi xml. Il nuovo approccio di Pedram è ancora la soluzione corretta, ma ho solo pensato di condividere anche la soluzione pigra.


3

prova questo metodo per creare una bitmap e impostarla sulla vista immagine.

private void circularImageBar(ImageView iv2, int i) {


    Bitmap b = Bitmap.createBitmap(300, 300,Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(b); 
    Paint paint = new Paint();

        paint.setColor(Color.parseColor("#c4c4c4"));
        paint.setStrokeWidth(10);
        paint.setStyle(Paint.Style.STROKE);
        canvas.drawCircle(150, 150, 140, paint);

        paint.setColor(Color.parseColor("#FFDB4C"));
        paint.setStrokeWidth(10);   
        paint.setStyle(Paint.Style.FILL);
        final RectF oval = new RectF();
        paint.setStyle(Paint.Style.STROKE);
        oval.set(10,10,290,290);

        canvas.drawArc(oval, 270, ((i*360)/100), false, paint);
        paint.setStrokeWidth(0);    
        paint.setTextAlign(Align.CENTER);
        paint.setColor(Color.parseColor("#8E8E93")); 
        paint.setTextSize(140);

        canvas.drawText(""+i, 150, 150+(paint.getTextSize()/3), paint); 

        iv2.setImageBitmap(b);
}

2

https://github.com/passsy/android-HoloCircularProgressBar è un esempio di una libreria che fa questo. Come affermato da Tenfour04, dovrà essere un po ' personalizzato, in quanto questo non è supportato direttamente fuori dalla scatola. Se questa libreria non si comporta come desideri, puoi forkarla e modificare i dettagli per farlo funzionare a tuo piacimento. Se implementi qualcosa che gli altri possono riutilizzare, potresti persino inviare una richiesta pull per ricollegarla!


Ho visto anche questa libreria ma non volevo usare un'altra libreria di terze parti solo per questo piccolo compito. Tuttavia, proverò entrambi i metodi citati da te e Tenfour04 per vedere quale funziona per me e rispondere qui.
Saurav Srivastava,

1
@SauravSrivastava: sto anche cercando un'animazione simile nella mia app. Hai trovato la soluzione? In caso affermativo, si prega di condividere la soluzione.
Basher51,

@Travis Si prega di vedere questa domanda - stackoverflow.com/questions/44801280/…
Kumar

2

@Pedram, la tua vecchia soluzione funziona davvero bene anche in lollipop (e meglio di quella nuova poiché è utilizzabile ovunque, anche nelle viste remote) basta cambiare il tuo circular_progress_bar.xmlcodice in questo modo:

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="270"
    android:toDegrees="270">
    <shape
        android:innerRadiusRatio="2.5"
        android:shape="ring"
        android:thickness="1dp"
        android:useLevel="true"> <!-- Just add this line -->
        <gradient
            android:angle="0"
            android:endColor="#007DD6"
            android:startColor="#007DD6"
            android:type="sweep"
            android:useLevel="false" />
    </shape>
</rotate>

2
Ottima osservazione su Android: useLevel = "true" !!! Mi hai aiutato a risolvere un problema importante su Android 5! Grazie mille!
DmitryKanunnikoff il

2
package com.example.ankitrajpoot.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;


public class MainActivity extends Activity {

    private ProgressBar spinner;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        spinner=(ProgressBar)findViewById(R.id.progressBar);
        spinner.setVisibility(View.VISIBLE);
    }
}

xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loadingPanel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">

<ProgressBar
    android:id="@+id/progressBar"

    android:layout_width="48dp"
    style="?android:attr/progressBarStyleLarge"
    android:layout_height="48dp"
    android:indeterminateDrawable="@drawable/circular_progress_bar"
    android:indeterminate="true" />
</RelativeLayout>





<?xml version="1.0" encoding="utf-8"?>
<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:pivotX="50%"
    android:pivotY="50%"
    android:fromDegrees="0"
    android:toDegrees="1080">
    <shape
        android:shape="ring"
        android:innerRadiusRatio="3"
        android:thicknessRatio="8"
        android:useLevel="false">

        <size
            android:width="56dip"
            android:height="56dip" />

        <gradient
            android:type="sweep"
            android:useLevel="false"
            android:startColor="@android:color/transparent"
            android:endColor="#1e9dff"
            android:angle="0"
            />

    </shape>
</rotate>

È quindi possibile aggiungere una descrizione della soluzione proposta.
il_raffa,

2

Con la libreria dei componenti materiali è possibile utilizzare ProgressIndicatorcon uno Widget.MaterialComponents.ProgressIndicator.Circular.Determinatestile.

Qualcosa di simile a:

<com.google.android.material.progressindicator.ProgressIndicator
    style="@style/Widget.MaterialComponents.ProgressIndicator.Circular.Determinate"
    app:indicatorColor="@color/...."
    app:trackColor="@color/...."
    app:circularRadius="64dp"/>

Puoi usare questi attributi:

  • circularRadius: definisce il raggio dell'indicatore di avanzamento circolare
  • trackColor: il colore utilizzato per la traccia di avanzamento. Se non definito, verrà impostato su indicatorColore applica il android:disabledAlphadal tema.
  • indicatorColor: il singolo colore utilizzato per l'indicatore in modalità determinata / indeterminata. Per impostazione predefinita utilizza il colore primario del tema

inserisci qui la descrizione dell'immagine

Utilizzare progressIndicator.setProgressCompat((int) value, true);per aggiornare il valore nell'indicatore.

Nota: richiede almeno la versione 1.3.0-alpha01.


Qual è la dipendenza della libreria richiesta?
bikram


Ho aggiunto l'implementazione "com.google.android.material: materiale: 1.1.0" a build.gradle, ma ProgressIndicator non viene ancora visualizzato.
bikram

@bikram Come descritto nella risposta: richiede almeno la versione 1.3.0-alpha01.
Gabriele Mariotti,

1

Modificare

android:useLevel="false"

per

android:useLevel="true"

per la seconda sahpe con id="@android:id/progress

spero funzioni

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.