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);
}
}
}