編輯:關於Android編程
要實現一個自定義的View,通常都是重寫一些系統框架在所有View上調用的基本方法,如大家都熟悉的onDraw(Convas)方法,沒有必要重寫View所有的方法。下面我們一起對View的方法按照View的生命周期事件順序進行分類,如 ... 要實現一個自定義的View,通常都是重寫一些系統框架在所有View上調用的基本方法,如大家都熟悉的onDraw(Convas)方法,沒有必要重寫View所有的方法。
下面我們一起對View的方法按照View的生命周期事件順序進行分類,如下表所示:
分類 方法 描述 創建
構造方法 View中有兩種類型的構造方法,一種是在代碼中構建View,另一種是填充布局文件構建View,第二種構造方法要解析並應用布局文件中定義的任何屬性。onFinishInflash() 在來自於XML的View和它所有的子節點填充之後被調用。
布局 onMeasure 調用該方法來確定view及它所有子節點需要的尺寸onLayout 當view需要為它的所有子節點指定大小和布局時,此方法被調用
onSizeChanged 當這個view的大小發生變化時,此方法被調用
繪制 onDraw 當view渲染它的內容時被調用
事件處理 onKeyDown 當一個新的按鍵事件發生時被調用
onKeyUp 當一個按鍵按起時被調用
onTrackballEvent 當軌跡球動作事件發生時被調用
onTouchEvent 當觸屏動作發生時被調用焦點
onFocusChanged 當view獲得或是失去焦點時被調用
onWindowFocusChanged 當包含view的窗口獲得焦點或是失去焦點時被調用附著 onAttachedToWindow() 當view附著到窗口時被調用
onDetachedFromWindow 當view脫離它的窗口時被調用
onWindowVisibilityChanged 當包含此view的窗口的可見性發生變化時被調用
View 1.0 ID 關於View的ID,不做過多說明,只是用於標記View。View 1.1 位置View的幾何形狀是一個矩形,view的位置由矩形的左上角的x,y坐標及矩形的高度和寬度決定,他們的單位都是像素。 通過getLeft和getTop方法可以獲得view相對於它的直接父節點的x,y坐標。
此外,還有一些便利的方法可以幫助我們減少計算量,比如getRight和getBottom方法,調用getRight等價於getLeft()+getWidth()方法,
同理getBottom等價於getTop()+getHeight()方法。
View 1.2 大小,padding,margin 一個View的大小由它的寬度和高度來表達,一個View實際上擁有兩對寬高值。 第一對寬高值是:測量過的寬度和高度,即view想從它的父節點獲得的寬高值,可以通過getMeasuredWidth()方法和getMeasuredHeight()方法獲得。 第二對寬高值是:繪制的寬度和高度,即View的實際寬度和高度,是在布局之後,繪制View階段的寬高值,這與上面提到的寬高值可能不同。通過getWidth()方法和getHeight()方法可以獲得View的實際寬度和高度。 padding同css中的padding屬性。通過setPadding(int,int,int,int)可以設置View的padding,通過getPaddingXXX()方法可以獲得View中對應方向的padding,XXX值得是left,right,top,bottom。 view不提供對margin的支持,但是viewGroup提供支持。
主要思想:將一個view設計成多層:背景層,含中獎信息等;遮蓋層,用於刮獎,使用關聯一個Bitmap的Canvas在該Bitmap上,使用它的canvas.drawPat
1、產生背景: 為了調試方便,常常希望通過知道apk的路徑,直接去啟動它,所以就寫了這個命令 2、使用方法: adb push launch /data/ adb pus
用過ios的都知道ios上輸入法關閉的同時會自動關閉輸入框,那麼在android上如何實現監聽輸入法彈出和關閉呢?本篇文章就為你提供了一種可靠的實現方式。演示效果視頻地址
先來幾張效果圖: 一、沒有拋擲: 二、向右拋擲一次 三、向右再拋擲一次 接下來說說Android開發中對於手勢動作的識別 參考資料