剛接觸tv開發,需要我們轉變下思路,在tv開發中沒有以前我們手機端的什麼 dispatchtouchevent、onintercepttouchevent、ontouchevent 事件來分發,而需要使用dispatchkeyevent、onkeydown、onkeylisenter 等事件來分發處理焦點問題,而且tv端焦點沒有什麼好辦法可以全域性控制,需要我們自己來想辦法規定焦點走向,可能乙個沒處理好,就一臉懵逼了,焦點為啥跑的不見了,焦點為啥跑那裡去了等等問題。 接下來我們就說說在tv端開發的基礎知識
android
上下導航時,不是想要的結果.
邊緣移動時,會出現焦點丟失的狀況.
有時想直接定位到某個位置上.
android提供了一些焦點相關的屬性,在現有的框架層下通過設定view的屬性來獲得焦點
android:focusable:設定乙個控制項能否獲得焦點
android:background:設定在作為背景的drawable
android:nextfocusdown:定義下乙個獲得焦點的控制項當按下鍵時
android:nextfocusup:定義下乙個獲得焦點的控制項當按上鍵時
android:nextfocusleft:定義下乙個獲得焦點的控制項當按左鍵時
android:nextfocusright:定義下乙個獲得焦點的控制項當按右鍵時
:強制設定乙個焦點到指定的view或它的乙個子類,前提是android:focusable為true能夠獲得焦點
下面列出兩種方法處理焦點問題
第一種方法:
採用android自帶的直接控制焦點上下左右的方法。這種方法的前提是必須知道每個view的id,因此在進行布局時有必須要通過view.setid(…)指定view的特定id,然後通過view.setnextleftview(…)等四個方法控制該view的上下左右移動後所到達的view。
然而這種方法只適用於前提就設定好id的場景,不適合動態布局的場景
第二種方法:
在一些比較複雜的layout中,特別是涉及到在view的焦點變化的過程中還要控制view的背景以及字型顏色變化等。必須對每個imagebutton 設定焦點捕獲實際(setonfocuschangelistener),在該監聽事件中處理
imagebutton.setonfocuschangelistener() else
然後使用key事件分發來確定焦點移動方向,一般可以使用onkeydown事件進行處理
public void onkeydown(int keycode, keyevent event)
if( event.keycode_drop_down == keycode )
if( event.keycode_drop_left == keycode )
if( event.keycode_drop_right == keycode )
}
接下來講講tv開發中需要了解的keycode 可以參考下
android常用的物理按鍵及其觸發事件
此部落格講解的按鈕事件
常用的按鍵code有
keycode_menu 菜單鍵
* 方向鍵
* keycode_dpad_center
* keycode_dpad_up
* keycode_dpad_down
* keycode_dpad_left
* keycode_dpad_right
在按鍵過程中 按下和鬆開的action主要是action_down、
action_up 事件分發和處理是在 action_down 中處理
此處需要特別說明的是 view.setfocusable(true);
改變控制項是否可以獲得焦點,然而同時會觸發 setonfocuschangelistener事件
接下來將會講解在tv開發中所涉及到的控制項使用技巧
開發經驗總結
2018 8 29 1.盡量不要在迴圈方法裡面查詢資料庫 應該使用join或者union將資料統一查詢出來後,迴圈處理資料 2.新增或者更新資料時,addtime 和updatetime 的值不要寫在dal層,統計資料時不好控制 3.如果你程式裡面使用的sql語句的話。insert 語句 應該寫明新...
Flsh SOCKET開發經驗總結
剛用as3 flash play 10開發了乙個flash socket應用,過程中遇到的最大問題是安全策略的部署。flash socket通訊中的安全策略問題詳解 套接字策略 adobe actionscript 3.0 安全沙箱 在呼叫flash socket的 socket.connect 方...
python kivy 開發經驗總結
kivy 是一款 python 的gui開發框架,特點是樣式可以和 分離,繪圖功能基於opengl編寫,可以用來開發比較炫的介面,並且可以打包為android ios等移動應用,還能執行在linux windows macos上。我們塔爾旺科技 準備開發一款能對進行畫框標註的程式,因為是內部使用,所...