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