本範例,透過模擬在電腦上,使用滑鼠右鍵來取得圖片相關內容的功能,讓使用者可以取得手機中圖片的寬高。
目前分類:第7章 娛樂多媒體 (20)
- Feb 05 Fri 2010 11:46
7-1 存取Drawable資源的寬高—ContextMenu與Bitmap的應用
- Feb 05 Fri 2010 11:46
7-2 繪製幾何圖形 — 使用android.graphics 類別
本範例將運用Paint 物件(繪筆)的設定值不同,在Canvas(畫布)上繪製空心、實心及漸層色的多種幾何圖形。
- Feb 05 Fri 2010 11:45
7-3 手機螢幕保護程式—Fade In/ Fade Out 特效與執行緒
以時間戳記的方式,判斷距離上一次按下手機鍵盤、螢幕的時間,並計量兩次的時間間隔,當超過了指定的秒數(預設為5 秒)則自動進入保護程式。
- Feb 05 Fri 2010 11:44
7-4 用手指移動畫面裡的照片—onTouchEvent 事件判斷
在這個範例中,設計一個ImageView 並使用Drawable 的圖片,將照片在程式執行的一開始,就置於螢幕的中央。透過實作onTouchEvent 來處理點下(ACTION_DOWN),拖曳(ACTION_MOVE),放開(ACTION_UP)等事件,來完成拖曳圖片的效果。
- Feb 05 Fri 2010 11:44
7-5 載入記憶卡的Gallery 相簿—File ArrayList
此範例學習重點在於設計一個取得記憶卡中的相片檔案清單函數(getSD()),將記憶體裡掃瞄過後的圖檔,以File List<String> 的方式存放,再利用自訂的ImageAdapter 來初始化Gallery 物件,最後將記憶卡裡的圖片載入至Gallery Widget當中。
- Feb 05 Fri 2010 11:44
7-6 取得手機內建媒體裡的圖檔—ACTION_GET_CONTENT 取回InputStream
手機裡的多媒體按鈕(Pictures)是進入多媒體選單的工具程式,手機已經內建有這個Intent,但除了透過手機內建的捷徑進入使用之外,也可以利用程式的方式控制呼叫這個多媒體Intent,以下的範例則是示範點選Pictures 按鈕之後的行為。
- Feb 05 Fri 2010 11:43
7-7 相片導覽精靈與設定背景桌布—ImageSwitcher 與Gallery
ImageSwitcher 需要與Gallery Widget 搭配使用,並捕捉User 於Gallery 點擊之後的事件處理,利用ImageSwitcher 與使用ImageView 有不一樣的切換效果。
- Feb 05 Fri 2010 11:42
7-8 調整音量大小聲 — AudioManager 控制音量
Android API 中的AudioManager(android.media.AudioManager)提供了相關的方法,可以在程式中控制手機音量的大小,或切換聲音模式為震動或是靜音,本範例中將為各位示範如何快速調整手機音量與聲音模式的實作方法。
- Feb 05 Fri 2010 11:42
7-9 播放mp3 資源檔案 — raw 檔案夾與MediaPlayer 的使用
此範例學習重點是新增一個MediaPlayer 物件,並使用MediaPlayer.creat() 方法來建立播放器播放資源,再透過MediaPlayer.start()、MediaPlayer.stop()與MediaPlayer.pause() 分別執行開始、停止、暫停等功能,為了處理按鈕所需處理的事件,覆寫各ImageButton 的onClick(),以達到透過按鈕來控制MediaPlayer 的狀態。
- Feb 05 Fri 2010 11:41
7-10 播放記憶卡裡的mp3 音樂 — MediaPlayer.setDataSource
看完了以MediaPlayer 物件的Create 方法載入專案資源(Resource)裡的mp3 音樂,接著下來,將示範如何實作使用MediaPlayer 載入外部mp3 音樂檔案的方式來播放音樂。
- Feb 05 Fri 2010 11:41
7-11 自製錄音/播放錄音程式 — MediaRecorder 與AudioEncoder
這個範例程式會設計四個按鈕,分別作為「錄音」、「停止錄音」、「播放錄音」以及「刪除錄音」,為了順利且不限制錄音時間長度,所以將錄音暫存檔儲存至記憶卡,錄音之後,再將所有的錄音檔(.amr)顯示在ListView 當中,點選檔案後可播放錄音檔,或是刪除錄音檔。
- Feb 05 Fri 2010 11:41
7-12 透過收到簡訊開始秘密錄音 — MediaRecorder 與BroadcastReceiver 實例
當BroadcastReceiver 註冊在Activity 裡的 <receiver> 宣告中,當接收到ACTION 廣播訊息(android.provider.Telephony.SMS_RECEIVED),程式就會「醒過來」,接著完成秘密錄音的工作,至於錄完的檔案可用前面章節自製的錄音播放程式來播放。
- Feb 05 Fri 2010 11:40
7-13 內建影片播放器載入3gp 電影 — VideoView Widget
VideoView 與其他之前曾介紹過的Widget 使用方法類似,必須先在Layout XML 定義好VideoView 的屬性,在程式裡透過findViewById() 方法就可以建立VideoView 物件了。本範例事前先將兩段 .3gp 的影片檔案,儲存在記憶卡中,透過程式裡的兩個按鈕來分別播放這兩段影片。
- Feb 05 Fri 2010 11:40
7-14 自製3gp 影片播放器 — MediaPlayer 與實作SurfaceView
此範例將學會在Activity 裡建立SurfaceView 這個View 與控制SurfaceView 的SurfaceHolder 物件,搭配MediaPlayer 的setDisplay() 方法來指定要將影像顯示於指定的SurfaceView 之上。
- Feb 05 Fri 2010 11:39
7-15 相機預覽及拍照暫存檔 — Camera 及PictureCallback 事件
這是一個自製簡易相機的範例練習,與API Demo 裡的Preview 程式不同,本程式以Activity為基底,在Layout 配置了三個按鈕,分別處理「開啟相機預覽」、「關閉相機」、「拍照」的工作,當按下「拍照」按鈕,程式將畫面擷取下來後,儲存於「SD」記憶卡暫存檔,最後將拍照下來的圖檔顯示於Activity 裡的ImageView 中。
將此專案程式升級至Android 1.5 SDK環境之後
雖專案設定為1.1,但在執行時會發現一個現象
即按下「開啟相機預覽」,再按下「關閉預覽」
若再一次「開啟相機預覽」則會發生以下Exception:
- Feb 05 Fri 2010 11:39
7-16 拍照瞬間啟動相機自動對焦 — android.hardware.Camera.AutoFocusCallback
如果相機支援自動對焦(AutoFocus),那麼本範例程式為前一範例的進階延伸,在前一範例中拍照的畫面並不會啟動自動對焦,即便您的Android手機支援AF,所拍照的圖檔也都會有失焦的現象,本範例即實作android.hardware.Camera.AutoFocusCallback類別,來讓相機於拍照的瞬間啟動自動對焦功能,當然若原來手機就沒有自動對焦模組,那麼此範例所拍照出來的照片也不會有任何的改善。
- Feb 05 Fri 2010 11:38
7-17 製作開場動畫 — MediaPlayer.OnCompletionListener
曾看過一些知名遊戲開發商,在執行程式之前會先顯示一段開場動畫之後,才進入程式,類似的手法透過VideoView其實也做得到,底下的範例會讓程式一開始先跑一段開機動畫,而在跑完這段動畫之後才進入主程式
- Feb 05 Fri 2010 11:38
7-18 我的手機會說話 — 實作Text-to-Speech Library
Google自SDK 1.6之後就內建了Text-to-Speech的API,但要使用此API必須先在User的手機上「安裝語音資料」,之後便能透過新增的Text-to-Speech Library(API)讓文字用說的,就如同Google翻譯的網路版本可以發音是一樣的原理。
- Feb 05 Fri 2010 11:38
7-19 手勢觸控螢幕控制 — GestureDetector
利用GestureDetector裡的OnGestureListener()來覆寫手勢在主畫面(ContentView)上的手勢動作,其關鍵之處為覆寫OnGestureListener裡的onScrool()方法,利用手勢移動的方向,營造圖片被拖拉的效果。
- Feb 05 Fri 2010 11:33
7-20 多點觸控螢幕事件捕捉 — MotionEvent.getPointerCount()
雖曾寫過在Activity中覆寫onTouchEvent()事件,藉此捕捉按下單一個觸控點座標來拖曳圖片,但此範例並不作複雜的判斷,僅作多點觸控事件的捕捉,為快速掌握學習的要點,本範例以畫面配置兩個TextView來呈現與User觸控螢幕的事件回應,在螢幕中間顯示目前觸碰點數,再程式最上面則顯示目前觸發的事件名稱,以此作為開發多點觸控應用程式的起點。