編輯:Android開發實例
前言
本章內容是android.widget.MediaController,版本為Android 2.3 r1,翻譯來自"唐明",再次感謝"唐明" !
正文
一、結構public class MediaController extends FrameLayout
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.FrameLayout
android.widget.MediaController
二、類概述
一個包含媒體播放器(MediaPlayer)控件的視圖。包含了一些典型的按鈕,像"播放(Play)/暫停(Pause)", "倒帶(Rewind)", "快進(Fast Forward)"與進度滑動器(progress slider)。它管理媒體播放器(MediaController)的狀態以保持控件的同步。
通過編程來實例化使用這個類。這個媒體控制器將創建一個具有默認設置的控件,並把它們放到一個窗口裡漂浮在你的應用程序上。具體來說,這些控件會漂浮在通過setAnchorView()指定的視圖上。如果這個窗口空閒3秒那麼它將消失,直到用戶觸摸這個視圖的時候重現。
當媒體控制器是在一個XML布局資源文件中創建的時候,像show()和 hide()這些函數是無效的。媒體播放器將根據這些規則去顯示和隱藏:
* 在調用setPrevNextListeners()函數之前,"previous"和 "next"按鈕都是隱藏的。
* 如果setPrevNextListeners()函數被調用但傳入的監聽器參數是null,那麼"previous"和 "next"按鈕是可見的但是處於禁用狀態。
*"rewind" 和 "fastforward"按鈕是顯示的,如果不需要可以使用構造函數MediaController(Context, boolean)將boolean設置為false。
三、公共方法
public boolean dispatchKeyEvent (KeyEvent event)
在焦點路徑上分發按鈕事件到下一個視圖。該路徑從視圖樹的頂端遍歷到當前獲得焦點的視圖。如果當前視圖已獲得焦點,就分發給自身。否則,就分發到下一個節點的焦點路徑上。這個方法也可以激發任何一個按鍵消息監聽器。
參數
event 被分發的事件
返回值
如果這個事件被處理了返回true,否則返回false。
public void hide ()
從屏幕中移除控制器。
public boolean isShowing ()
(譯者注:判斷媒體控制器是否處於可見狀態。)
public void onFinishInflate ()
XML文件加載視圖完成時調用。這個函數在加載的最後階段被調用,所有的子視圖已經被添加。
即使子類重寫了onFinishInflate方法,也應該始終確保調用父類方法,以便我們調用。
public boolean onTouchEvent (MotionEvent event)
實現這個方法來處理觸摸屏幕引發的事件。
參數
event 動作事件
返回值
如果這個事件被處理了返回true,否則返回false。
public boolean onTrackballEvent (MotionEvent ev)
實現這個方法處理軌跡球的動作事件,軌跡球相對運動的最後一個事件能用MotionEvent.getX()
和 MotionEvent.getY()
函數獲取。這些都是標准化的,用1表示用戶按下一個DPAD按鍵。(因此他們將經常使用小數值表示,為軌跡球提供更多的的細微運動信息) (譯者注:DPAD按鍵事件: KeyEvent.KEYCODE_DPAD_CENTER(居中)、KeyEvent.KEYCODE_DPAD_DOWN(向下)、KeyEvent.KEYCODE_DPAD_LEFT(向左)、KeyEvent.KEYCODE_DPAD_RIGHT(向右)、KeyEvent.KEYCODE_DPAD_UP(向上)作比較。分別表示居中、下移、左移、右移、上移的操作。 相關鏈接:onTrackBallEvent方法簡介)
參數
ev 動作事件
返回值
如果這個事件被處理了返回true,否則返回false。
public void setAnchorView (View view)
設置這個控制器綁定(anchor/錨)到一個視圖上。例如可以是一個VideoView對象,或者是你的activity的主視圖。
參數
view 將視圖來綁定控制器時可見
public void setEnabled (boolean enabled)
設置視圖對象的有效狀態。這也可以改變子類的有效狀態。
參數
enabled 如果要讓這個視圖對象可用就設置為true,否則設置為false。
public void setMediaPlayer (MediaController.MediaPlayerControl player)
(譯者注:把這個媒體控制器設置到VideoView對象上。)
public void setPrevNextListeners (View.OnClickListener next, View.OnClickListener prev)
(譯者注:設置"previous"和 "next"按鈕的監聽器函數。)
public void show (int timeout)
在屏幕上顯示這個控制器。它將在閒置’超時 (timeout)’毫秒到達後自動消失。
參數
timeout 這個參數以毫秒為單位。如果設置為0將一直顯示到調用hide()函數為止。
public void show ()
在屏幕上顯示這個控制器。它將在3秒以後自動消失。前言 SQLite是一種輕量級的小型數據庫,雖然比較小,但是功能相對比較完善,一些常見的數據庫基本功能也具有,在現在的嵌入式系統中使用該數據庫的比較多,因為
就目前的互聯網發展來看,已經有越來越多互聯網企業都在Android平台上部署其客戶端,並且為了提升用戶體驗,這些客戶端都做得布局合理而且美觀。本文所要介紹的And
微信平台開放後倒是挺火的,許多第三方應用都想試下接入微信這個平台,畢竟可以利用微信建立起來的關系鏈來拓展自己的應用還是挺不錯的,可以節約很多在社交方面的開銷,我最
從 Android 5.0 Lollipop 開始提供一套 API 來支持嵌入的滑動效果。同樣在最