自定義控件及語法_第1頁
自定義控件及語法_第2頁
自定義控件及語法_第3頁
自定義控件及語法_第4頁
自定義控件及語法_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

自定義控件講師:練霓裳黑馬訓練營Android控件基本介紹黑馬訓練營Android本身提供了很多控件 比如我們常用的有文本控件TextView和EditText;按鈕控件Button和ImageButton狀態(tài)開關按鈕ToggleButton單選復選按鈕RadioButton和RadioGroup單選按鈕和復選按鈕CheckBox圖片控件ImageView時鐘控件AnalogClock和DigitalClock進度條ProgressBar和日期與時間選擇控件DatePicker和TimePicker等。但是這些控件并不能滿足我們所有的要求。有的時候我們必須要自己定義控件來滿足我們的要求。文本控件TextView

和EditText黑馬訓練營TextView

控件繼承自View

類。TextView控件的功能是向用戶顯示文本內容同時可選擇性讓用戶編輯文本。其中

TextView不允許編輯。EditText控件EditText

控件繼承自TextView。EditText與

TextView

最大的不同是EditText是可以編輯的按鈕控件Button和ImageButton黑馬訓練營

Button控件繼承自TextView類Button的用法比較簡單主要是為Button控件設置View.OnClickListener.監(jiān)聽器并在監(jiān)聽器的實現(xiàn)代碼中編寫按鈕按下事件的處理代碼。ImageButton

控件ImageButton

繼承自ImageView。ImageButton

與Button最大的區(qū)別是ImageButton沒有text

屬性 既按鈕中將顯示圖片而不是文本。ImageButton

控件中設置顯示圖片可以通過android:src屬性 也可以通過setImageResurce(int

)方法來實現(xiàn)狀態(tài)開關按鈕ToggleButton黑馬訓練營ToggleButton

控件是繼承自

Button。ToggleButton

的狀態(tài)只能是選中和未選中 并且需要為不同的狀態(tài)設置不同的顯示文本。除了繼承自父類的一些屬性和方法之外 ToggleButton

也具有一些自己的

ToggleButton

屬性。單選按鈕和復選按鈕CheckBox

和RadioButton黑馬訓練營

CheckBox和RadioButton都只有選中和未選中兩種狀態(tài),可以通過checked屬性來設置.不同的是RadioButton是單選按鈕,需要編制到一個

RadioGroup中同一時刻一個RadioGroup中只能有一個按鈕處于選中狀態(tài).CheckBox和RadioButton都是繼承自CompoundButton中繼承了一些成員.圖片控件ImageView黑馬訓練營ImageView控件負責顯示圖片,其圖片來源既可以是資源文件的id,也可以是Drawable對象或Bitmap對象,還可以是Content

Provider的Uri.時鐘控件AnalogClock

和DigitalClock黑馬訓練營AnalogClock繼承自ViewAnalogClock

控件顯示模擬時鐘 只顯示時針和分針DigeitalClock繼承自TextView。DigetalClock

顯示數(shù)字時鐘 可精確到秒。

時鐘控件比較簡單

只需要在布局文件中聲明控件即可。日期與時間選擇控件DatePicker

和TimePicker黑馬訓練營DatePicker

繼承自FrameLayout類 日期選擇控件的主要功能是向用戶提供包含年、月、日的日期數(shù)據(jù)并允許用戶對其進行選擇。如果要捕獲用戶修改日期選擇控件中數(shù)據(jù)的事件 需要為DatePicker

添加onDateChangedListener

監(jiān)聽器。TimePicker

同樣繼承自FrameLayout

類。時間選擇控件向用戶顯示一天中的時間 可以為24小時制 可以為AM/PM制 并允許用戶進行選擇。如果要捕獲用戶修改時間數(shù)據(jù)的事件 便需要為TimePicker添加OnTimeChangedListener

監(jiān)聽器繼承已有控件實現(xiàn)自定義控件黑馬訓練營通過對android本身提供的控件的代碼進行研究,android中控件都是繼承

view類來實現(xiàn),通過重寫ondraw方法來繪制我們所需要的控件.通過這個我們得到兩點提示:我們可以在已有的控件的基礎上,通過重寫相關方法來實現(xiàn)我們的需求.繼承view類或viewgroup類,來繪制我們所需要的控件.一般來講,通過繼承已有的控件,來自定義控件要簡單一點.繼承已有控件實現(xiàn)自定義控件黑馬訓練營繼承已有控件實現(xiàn)自定義控件黑馬訓練營繼承已有控件實現(xiàn)自定義控件黑馬訓練營繼承已有控件實現(xiàn)自定義控件custom_progressbar.xml黑馬訓練營繼承已有控件實現(xiàn)自定義控件黑馬訓練營優(yōu)酷菜單實現(xiàn)步驟:1

使用相對布局完成顯示2

設置第二層菜單點擊事件3

設置動畫4

設置第一層菜單點擊事件5設置動畫6

根據(jù)是否顯示第三層activity_main.xmlMainActivity.java黑馬訓練營黑馬訓練營優(yōu)酷菜單//創(chuàng)建一個旋轉動畫對象RotateAnimation

ra

=

new

RotateAnimation(0,

//開始的角度-180,

//結束的角度Animation.RELATIVE_TO_SELF,//x軸的參照物:參照自己0.5f,//x軸的值為:自己寬度的一半

Animation.RELATIVE_TO_SELF,//y軸的參照物:參照自己

1f);//y軸的值為:整個高度ra.setDuration(500);//設置時間ra.setFillAfter(true);//設置動畫執(zhí)行完畢時,停留在結束的位置上.//設置動畫的監(jiān)聽ra.setAnimationListener(new

MyAnimationListener());黑馬訓練營優(yōu)酷菜單/**當按鍵按下時回調此方法@param

keyCode

按下的按鈕的代碼值如果等于82,就是菜單鍵*/@Overridepublic

boolean

onKeyDown(int

keyCode,

KeyEvent

event)

{if(keyCode==KeyEvent.KEYCODE_MENU){//當前是菜單鍵//判斷是否有動畫正在執(zhí)行中,如果有,直接returnif(Utils.animationRunningCount!=0){//有動畫執(zhí)行,不可以執(zhí)行動畫return

true;//消耗此點擊事件}優(yōu)酷廣告頭分析:從效果看android使用一個可以滑動的控件ViewPager,再使用了一些原生控件//設置當頁面改變的監(jiān)聽事件mViewPager.setOnPageChangeListener(this);使用xmlshape來創(chuàng)建圓點這些點是動態(tài)變化的數(shù)量:根據(jù)數(shù)據(jù)的多少添加切換:隨著ViewPager進行切換activity_main.xmlbg_select.xmlbg.xmlbg_normal.xml黑馬訓練營PagerAdapterinstantiateItem(ViewGroup,

int)

加載itemdestroyItem(ViewGroup,

int,

Object)

銷毀對象getCount()

定義ViewPager的總長度的isViewFromObject(View,Object)

判斷是否使用緩存,如果true,

使用緩存MainActivity.java黑馬訓練營PagerAdapter黑馬訓練營ViewPagerViewPager是android3.0加入的一個控件黑馬訓練營PagerAdapter改變監(jiān)聽黑馬訓練營自動提示框分析:1

從顯示效果可以看出來,布局就是由

EditText和ListView來組合完成,但是我們是在輸入內容后ListView才出現(xiàn),可以使用PopupWindow來動態(tài)的展示下面的內容實現(xiàn)步驟:1

完成基本界面2

給EditText設置文本改變監(jiān)聽3

彈出PopupWindowitem.xmlactivity_main.xmlMainActivity.java黑馬訓練營自動提示框黑馬訓練營可以滑動的開關分析:從效果來觀察該控件沒有使用andro

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論