編輯:關於Android編程
本文實例為大家分享了Android仿音樂播放器功能的具體代碼,供大家參考,具體內容如下
讀取本地音樂文件
源代碼:
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
private SeekBar seekBar;
private TextView tv_mian_stop;
private TextView tv_mian_start;
private int musicaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_mian_start = (TextView) findViewById(R.id.tv_mian_start);
tv_mian_stop = (TextView) findViewById(R.id.tv_mian_stop);
seekBar = (SeekBar) findViewById(R.id.seekBar);
//進度條的監聽事件
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
//改變
//每當進度條發生改變時tv_mian_start的值發生變化
//new TimeUtil().secToTime()一個外部類(時間格式轉化)
tv_mian_start.setText(new TimeUtil().secToTime(mediaPlayer.getCurrentPosition()/1000)+"");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
//開始
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//結束
//獲取拖動結束之後的位置
int progrss=seekBar.getProgress();
mediaPlayer.seekTo(progrss);
}
});
}
public void isPlay(View view){
ImageButton imageButton= (ImageButton) view;
if (mediaPlayer==null){
mediaPlayer = MediaPlayer.create(this, R.raw.seve);
mediaPlayer.start();
//把圖標修改為暫停的圖標
imageButton.setImageResource(android.R.drawable.ic_media_pause);
//獲取音樂的總時長
int muiscsum=mediaPlayer.getDuration();
//設置進度條的最大值為總時長
seekBar.setMax(muiscsum);
//執行一個多線程的耗時操作
new MyThread().start();
tv_mian_stop.setText(new TimeUtil().secToTime(muiscsum/1000)+"");
}else if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
imageButton.setImageResource(android.R.drawable.ic_media_play);
}else{
mediaPlayer.start();
imageButton.setImageResource(android.R.drawable.ic_media_pause);
}
}
class MyThread extends Thread{
@Override
public void run() {
super.run();
//當進度條的當前值小於最大值時進度條發生改變
while(seekBar.getProgress()<=seekBar.getMax()){
//獲取當前音樂播放的位置
musicaction = mediaPlayer.getCurrentPosition();
//讓進度條動起來
seekBar.setProgress(musicaction);
}
}
}
}
時間格式轉化類:
public class TimeUtil {
public static String secToTime(int time) {
String timeStr = null;
int hour = 0;
int minute = 0;
int second = 0;
if (time <= 0)
return "00:00";
else {
minute = time / 60;
if (minute < 60) {
second = time % 60;
timeStr = unitFormat(minute) + ":" + unitFormat(second);
} else {
hour = minute / 60;
if (hour > 99)
return "99:59:59";
minute = minute % 60;
second = time - hour * 3600 - minute * 60;
timeStr = unitFormat(hour) + ":" + unitFormat(minute) + ":" + unitFormat(second);
}
}
return timeStr;
}
private static String unitFormat(int i) {
String retStr = null;
if (i >= 0 && i < 10)
retStr = "0" + Integer.toString(i);
else
retStr = "" + i;
return retStr;
}
}
真機效果圖:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
Android仿ViVO X6 極速閃充動畫效果
一直都在看自定義View,經過一個星期的堅持,基本上能夠寫出一些比較實用的控件效果了,今天天氣太熱,就待在家裡玩手機,然後手機沒電了,在充電的時候,看到了手機的充電動畫,
Android之旅十八 百度地圖環境搭建
在android中使用百度地圖,我們可以先看看百度地圖相應的SDK信息:http://developer.baidu.com/map/index.php?title=an
Android控件之AnalogClock與DigitalClock用法實例分析
本文實例講述了Android控件之AnalogClock與DigitalClock用法。分享給大家供大家參考。具體如下:時鐘控件包括AnalogClock和Digital
Android 實現 IOS相機滑動控件
Android 實現 IOS相機滑動控件IOS相比於Android,動畫效果是一方面優勢,IOS相機切換時滑動的動畫很不錯,看著是有一個3D的效果,而且變化感覺很自然。A