style studio progressbar progreso personalizar indeterminate horizontal barra bar android progress-bar media-player

studio - ¿Cómo uso Android ProgressBar en modo determinado?



progressbar android style (2)

Programado:

progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleHorizontal); progressBar.setIndeterminate(false);

Estoy escribiendo un reproductor multimedia y me gustaría tener una barra de progreso que muestre el progreso de la canción. Encontré la clase ProgressBar, pero todo lo que puedo ver en la pantalla es un ícono circular giratorio. lo que estoy buscando es un bar real.

¿Cómo cambio el estilo de ProgressBar para que sea una barra (no un círculo) y cómo lo usaría con MediaPlayer?

Gracias


usa el estilo ?android:attr/progressBarStyleHorizontal

por ejemplo:

<ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal"

y este es un ejemplo con MediaPlayer:

package com.playerpgbar; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; public class Player extends Activity implements Runnable, OnClickListener { private TextView status; private ProgressBar progressBar; private Button startMedia; private Button stop; private MediaPlayer mp; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); status = (TextView) findViewById(R.id.status); progressBar = (ProgressBar) findViewById(R.id.progressBar); startMedia = (Button) findViewById(R.id.startMedia); stop = (Button) findViewById(R.id.stop); startMedia.setOnClickListener(this); stop.setOnClickListener(this); } @Override public void onClick(View v) { if (v.equals(startMedia)) { if (mp != null && mp.isPlaying()) return; mp = MediaPlayer.create(Player.this, R.raw.exodus_piranha); mp.start(); status.setText(R.string.PlayingMedia); progressBar.setVisibility(ProgressBar.VISIBLE); progressBar.setProgress(0); progressBar.setMax(mp.getDuration()); new Thread(this).start(); } if (v.equals(stop) && mp!=null) { mp.stop(); mp = null; status.setText(R.string.Stopped); progressBar.setVisibility(ProgressBar.GONE); } } @Override public void run() { int currentPosition= 0; int total = mp.getDuration(); while (mp!=null && currentPosition<total) { try { Thread.sleep(1000); currentPosition= mp.getCurrentPosition(); } catch (InterruptedException e) { return; } catch (Exception e) { return; } progressBar.setProgress(CurrentPosition); } } }