Android 開發自訂View
【附:——自訂View常處理的回呼函數
onFinishInflate() 當View中所有的子控制項均被映射成xml後觸發
onMeasure(int, int) 確定所有子項目的大小
onLayout(boolean, int, int, int, int) 當View分配所有的子項目的大小和位置時觸發
onSizeChanged(int, int, int, int) 當view的大小發生變化時觸發
onDraw(Canvas) view渲染內容的細節
onKeyDown(int, KeyEvent) 有按鍵按下後觸發
onKeyUp(int, KeyEvent) 有按鍵按下後彈起時觸發
onTrackballEvent(MotionEvent) 軌跡球事件
onTouchEvent(MotionEvent) 觸屏事件
onFocusChanged(boolean, int, Rect) 當View擷取或失去焦點時觸發
onWindowFocusChanged(boolean) 當視窗包含的view擷取或失去焦點時觸發
onAttachedToWindow() 當view被附著到一個視窗時觸發
onDetachedFromWindow() 當view離開附著的視窗時觸發,該方法和 onAttachedToWindow() 是相反。
onWindowVisibilityChanged(int) 當視窗中包含的可見的view發生變化時觸發】
1、繼承View類,重載父類方法(根據自己的需要進行重載)
package sn.dolp.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;public class XmlView extends View {public float cx = 40;public float cy = 50;Paint paint = new Paint();public XmlView(Context context) {super(context);// TODO Auto-generated constructor stub}public XmlView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stub}public XmlView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stub}@Overridepublic void onDraw(Canvas canvas){super.onDraw(canvas);paint.setColor(Color.RED);canvas.drawCircle(cx, cy, 15, paint);}@Overridepublic boolean onTouchEvent(MotionEvent event){cx = event.getX();cy = event.getY();invalidate();return true;}}
2、修改XML布局
原文地址:http://blog.csdn.net/qingdujun/article/details/41551151
參考文獻:UUTON的文章,http://www.uuton.com/post/3f493_24c2c7,2014年11月27日19:12:49