格式化

廣告

廣告2

2013年10月26日 星期六

[Android SDK特色教學] 遊戲、應用程式中播放背景音樂、背景音效

andorid遊戲、應用程式中播放背景音樂、背景音效

一個遊戲的背景音樂僅僅需要在遊戲運行的時候播放,而在返回到桌面或者進入其他應用使遊戲的activity變為不可見時,都應該立即停止播放所以遊戲的背景音效或音樂播放根本沒必要使用service
有人可能說播放背景音樂應該在後台執行,不能影響程序的正常運行,這樣說當然正確,但這僅需要開一個單獨的執行緒來專門播放音樂就可以了,而經我測試,MediaPlayerSoundPool本身都已經實現了在獨立的執行緒中播放音樂,所以綜上所述在遊戲中播放背景音樂完全沒必要使用 service,那樣完全是捨近求遠,畫蛇添足之舉。只需直接使用MediaPlayer即可。
以下是一個實現遊戲中播放聲音的類別,封裝了MediaPlayerSoundPool的使用細節,所有方法都定義為靜態方法,在程序啟動時先調用其init方法,然後在任何地方都可以非常方便的使用

[Android SDK特色教學] SoundPool播放音效

參考文章:[Android] SoundPool 音效 (一)-http://style77125tech.pixnet.net/blog/post/152442867
  1. 使用SoundPool有限制,播放的音檔不可以超過 「1mb」大小,所以要放音樂就不能使用這一個方法,要使用MediaPlay
  2. SoundPool很容易莫名其妙的自動終止,在使用pause和stop方法時很常很莫名其妙。
  3. SoundPool優點為CPU資源使用率低,反應延遲較少。
  4. 用來播放一些短短的音效、急促的效果音很好用。
  5. 建議使用ogg檔案為音效檔,請先建立資料夾raw放置音效檔案進去。

只要重點3行程式碼就可以播放音效:

[Android SDK特色教學] strings.xml顯示特殊字元

若你在strings.xml定義如下的字串變數
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">'""'''@#$%^&</string>

</resources>

那一定會有很多錯誤跳出來
原因就是不可以直接在strings.xml輸入這些符號來當作字串,而是必須要直接輸入acsii的編碼

以下為常見的ASCII十進制交換編碼:

2013年10月24日 星期四

[Android UI 設計] EditText文字垂直置中

[Android UI 設計] EditText文字垂直置中

LinearLayout有兩個非常相似的屬性:
  1. android:gravity
  2. android:layout_gravity
他們的區別在於: