項目QQ音樂開發記錄


QQ音樂項目進度

QQ音樂項目進度

08.25 開始QQ音樂項目

瞭解MediaPlayer機制

672221dfgw1eykjvjcrkxj20e30h7wg1.jpg

使用MediaPlayer實現基本的音樂播放

  • 需要Service:保存當前播放的進度以及當前播放的狀態

  • 需要啓動Service

  • 綁定Service

672221dfgw1eykjzk2otpj20h80bk76b.jpg672221dfgw1eykk1fap87j20b104l3yw.jpg672221dfgw1eykk1vumibj20mo0a9dim.jpg672221dfgw1eykk2fh5irj20bs04it9d.jpg
  • 按返回鍵,回到桌面,再點擊進入

    思路:界面關閉,service依然存活着,service中的成員變量都還在

08.27 異步準備音樂

  • 異步準備:準備網絡數據

    • 權限:android.permission.INTERNET

    • mPlayer.prepare();// 同步準備,阻塞主線程

    • mPlayer.prepareAsync();  // 異步準備,不會阻塞主線程

672221dfgw1eykkdzt1lwj20k5096gn0.jpg

09.23

完成了fragment切換動畫,back stack進入退出動畫

  • setCustomAnimations()四個參數那個,前兩個是fragment之間切換的動畫,後兩個對應出入棧動畫。動畫資源文件放在anim文件夾下,與activity的動畫一致。

    • 該方法必須在add,replace,remove方法前調用纔有效

more界面(略醜)

掃描本地歌曲,在5.0版本上出現錯誤

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIAMOUNTED

解決:將Intent.ACTION_MEDIA_MOUNTED改爲

ACTION_MEDIA_SCANNER_SCAN_FILE

在fragment中註冊廣播應該放在哪個方法裏?

點擊安裝程序的隱式意圖

Intent i = new Intent(Intent.ACTIONVIEW);

i.setDataAndType(Uri.parse("file://" + filepath,"application/vnd.android.package-archive");

i.addFlags(Intent.FLAGACTIVITYNEWTASK);

fragment隨activity的生命週期而動

popupwindow監聽

它的view.findview...然後一樣的

09.24

  • 使用自定義toast時,setText()方法調用的是系統默認佈局的TextView,不可用,正確的方法是findview出自定義佈局中的控件做相應的顯示設置

  • 得到堆棧中fragment的數量:mFragmentManager.getBackStackEntryCount()

09.28

  • 完成進度條自定義

    • layer-list:將多個圖片或上面兩種效果按照順序層疊起來

    • maxHeight屬性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章