今天继续在昨天的基础上进阶学习自定义控件,主要是通过自定义的控件去实现棋盘的格局,并为其加上了响应事件,实现了在任意位置点击来画棋子的功能。
其主要的方法还是创建一个类继承View,然后去实现它的两个构造方法,其中包含两个参数的构造方法是传入自己定义的布局属性必不可少的。
在为其添加相应时间的时候,使用了onTouchEvent方法,其返回值为布尔类型,若为真,则有控件自身去响应事件并且来处理,如果为假则交由系统来处理。
UI可以使用View 中的invalidate()来更新自己,每更新一次,也就相当于重新绘制一次。
下面把详细的代码粘贴上:
布局文件的代码:
<com.example.gameview.GameView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
注意自定义的控件的便签一定是自己的包名加上类名
GameView代码
package com.example.gameview;
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;
/**
* 经过这个实验终于明白了尺