日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Android游戲開(kāi)發(fā)之三:View類(lèi)用法詳解

View類(lèi)常用方法

自定義View的常用方法:

創(chuàng)新互聯(lián)公司主要為客戶(hù)提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺(jué)設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、營(yíng)銷(xiāo)推廣、網(wǎng)站程序開(kāi)發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)手機(jī)網(wǎng)站制作、微商城、網(wǎng)站托管及成都企業(yè)網(wǎng)站維護(hù)、WEB系統(tǒng)開(kāi)發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都報(bào)廢汽車(chē)回收行業(yè)客戶(hù)提供了網(wǎng)站改版服務(wù)。

onFinishInflate() 當(dāng)View中所有的子控件均被映射成xml后觸發(fā)

onMeasure(int, int) 確定所有子元素的大小

onLayout(boolean, int, int, int, int) 當(dāng)View分配所有的子元素的大小和位置時(shí)觸發(fā)

onSizeChanged(int, int, int, int) 當(dāng)view的大小發(fā)生變化時(shí)觸發(fā)

onDraw(Canvas) view渲染內(nèi)容的細(xì)節(jié)

onKeyDown(int, KeyEvent) 有按鍵按下后觸發(fā)

onKeyUp(int, KeyEvent) 有按鍵按下后彈起時(shí)觸發(fā)

onTrackballEvent(MotionEvent) 軌跡球事件

onTouchEvent(MotionEvent) 觸屏事件

onFocusChanged(boolean, int, Rect) 當(dāng)View獲取或失去焦點(diǎn)時(shí)觸發(fā)

onWindowFocusChanged(boolean) 當(dāng)窗口包含的view獲取或失去焦點(diǎn)時(shí)觸發(fā)

onAttachedToWindow() 當(dāng)view被附著到一個(gè)窗口時(shí)觸發(fā)

onDetachedFromWindow() 當(dāng)view離開(kāi)附著的窗口時(shí)觸發(fā),Android123提示該方法和  onAttachedToWindow() 是相反的。

onWindowVisibilityChanged(int) 當(dāng)窗口中包含的可見(jiàn)的view發(fā)生變化時(shí)觸發(fā)

以上是View實(shí)現(xiàn)的一些基本接口的回調(diào)方法。

View類(lèi)方法的重載

 一般我們需要處理畫(huà)布的顯示時(shí),重寫(xiě)onDraw(Canvas)用的的是最多的:

 
 
  1.      @Override   
  2.       protected void onDraw(Canvas canvas) {    
  3.        //這里我們直接使用canvas對(duì)象處理當(dāng)前的畫(huà)布,比如說(shuō)使用Paint來(lái)選擇要填充的顏色    
  4.  
  5.       Paint paintBackground = new Paint();    
  6. paintBackground.setColor(getResources().getColor(R.color.xxx));  //從Res中找到名為xxx的color顏色定義    
  7.       canvas.drawRect(0, 0, getWidth(), getHeight(), paintBackground); //設(shè)置當(dāng)前畫(huà)布的背景顏色為paintBackground中定義的顏色,以0,0作為為起點(diǎn),以當(dāng)前畫(huà)布的寬度和高度為重點(diǎn)即整塊畫(huà)布來(lái)填充。  具體的后面會(huì)講,在Canvas中我們可以實(shí)現(xiàn)畫(huà)路徑,圖形,區(qū)域,線。而Paint作為繪畫(huà)方式的對(duì)象可以設(shè)置顏色,大小,甚至字體的類(lèi)型等等。    
  8.     }   

當(dāng)然還有就是處理窗口還原狀態(tài)問(wèn)題(一般用于橫豎屏切換),除了在Activity中可以調(diào)用外,開(kāi)發(fā)游戲時(shí)我們盡量在View中使用如下代碼:

 
 
  1. @Override   
  2.    protected Parcelable onSaveInstanceState() {     
  3.       Parcelable p = super.onSaveInstanceState();    
  4.       Bundle bundle = new Bundle();    
  5.       bundle.putInt("x", pX);    
  6.       bundle.putInt("y", pY);    
  7.       bundle.putParcelable("android_state", p);    
  8.       return bundle;    
  9.    }    
  10.    @Override   
  11.    protected void onRestoreInstanceState(Parcelable state) {     
  12.       Bundle bundle = (Bundle) state;    
  13.       dosomething(bundle.getInt("x"), bundle.getInt("y")); //獲取剛才存儲(chǔ)的x和y信息    
  14. r.onRestoreInstanceState(bundle.getParcelable("android_state"));    
  15.       return;    
  16.    }   

在View中如果需要強(qiáng)制調(diào)用繪制方法onDraw,可以使用invalidate()方法,它有很多重載版本,同時(shí)在線程中的postInvailidate()方法在后面的教程中會(huì)講到。


網(wǎng)頁(yè)名稱(chēng):Android游戲開(kāi)發(fā)之三:View類(lèi)用法詳解
本文路徑:http://www.dlmjj.cn/article/dpeeidi.html