基于Android的五子棋设计与实现(4)
时间:2024-01-07 16:11 来源:毕业论文 作者:毕业论文 点击:次
本毕业设计的五子棋棋盘的设计就运用到了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()来存储前面我们刚刚测量好的宽高值。 (责任编辑:qin) |