本毕业设计的五子棋棋盘的设计就运用到了view类,采用自定义绘图的方式加以实现。

说到自定义绘图,这里我们需要了解两个重点,第一个重点是重写onMeasure() {}方法,第二个重点就是重写onDraw() {}方法[3]。

自定义绘图就好比是绘画,可以在画板的任意位置上绘制你想要的东西,而父类View就好比是一张画布,我们所需要实现的东西,比如这里的棋盘都在自定义绘图里完成。那么该怎样获取画板,这个其实很简单,之前我们提到的掌握自定义View的两个重点中的第二个重点,重写onDraw() {}方法就可以获取画板,其中canvas就是我们所说的画板。这个其实很简单,最核心的也是最最重要的是计算绘图位置,这里就要用到重写 onMeasure() {}方法。

代码块1:

@Override文献综述

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    super。onMeasure(widthMeasureSpec, heightMeasureSpec);

    int width = MeasureSpec。getSize(widthMeasureSpec);

    setMeasuredDimension(width, width);

    calcLinePoints();

}

  上面我贴出了重写onMeasure(){}方法的代码块1,onMeasure()中有两个参数,一个是widthMeasureSpec(宽详细测量值),另一个是heightMeasureSpec(高详细测量值),此方法的作用就是测量view视图的大小。在此方法中我又调用了MeasureSpec类下的getSize()函数,MeasureSpec里封装了父布局中传递给子布局的布局要求,每个MeasureSpec都代表了一组高度与宽度的要求 ,调用 getSize()通过详细测量结果获得size(由于本毕业设计采用的是正方形棋盘,为了美观,View视图的大小也设计为长宽相等,因此这里只需要调用一次就可以了),调用setMeasuredDimension()来存储前面我们刚刚测量好的宽高值。

上一篇:jsp+mysql考试管理系统的设计与实现+ER图
下一篇:Android的音乐播放器的研究与应用

Android手机考勤平台的设计与实现

基于android的环境信息管理系统设计

java+mysql班级评优系统的设计实现

Python+mysql宠物领养平台的设计与实现

ASP.NET飞翔租贷汽车公司信...

基于激光超声检测金属材...

多频激励下典型非线性系统的振动特性研究

机械安全标准国内外研究现状

第三方支付风险防范文献综述和参考文献

流动人员人事档案信息化...

80C51单片机水箱液位控制系...

ARM新生儿水床控制系统设计硬件设计+源代码

内河智能航运信息服务(...

城镇化进程国内外研究现状

浅析地籍档案的信息化管理【2143字】

反转课堂在小学数学教学...

超声波自动测量物体液位系统设计任务书