package com.tianmg_wuziqi;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.util.AttributeSet;import android.view.View;import android.view.ViewTreeObserver;public class WuziqiPanel extends View { private int mPanelWidgh; private int MAX_LINE=10; private float mLineHeight; private Paint mPaint=new Paint(); public WuziqiPanel(Context context, AttributeSet attrs) { super(context, attrs); setBackgroundColor(0x44ff0000); init();} private void init() {mPaint.setColor(0X88000000); mPaint.setAntiAlias(true); mPaint.setDither(true); mPaint.setStyle(Paint.Style.STROKE); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int widthSize=MeasureSpec.getSize(widthMeasureSpec); int widthMode=MeasureSpec.getMode(widthMeasureSpec); int heightSize=MeasureSpec.getSize(heightMeasureSpec); int heightMode=MeasureSpec.getMode(heightMeasureSpec); int width=Math.min(widthSize,heightSize); if(widthMode==MeasureSpec.UNSPECIFIED) { width = heightSize; }else if(heightMode==MeasureSpec.UNSPECIFIED){ width=widthSize; }setMeasuredDimension(width,width); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); mPanelWidgh=w; mLineHeight=mPanelWidgh*1.0f/MAX_LINE; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); drawBoard(canvas); } private void drawBoard(Canvas canvas) { int w = mPanelWidgh; float lineHeight = mLineHeight; for (int i = 0; i < MAX_LINE; i++) { int startX = (int) (lineHeight / 2); int endX = (int) (w - lineHeight / 2); int y = (int) ((0.5 + i) + lineHeight); canvas.drawLine(startX, y, endX, y,mPaint); canvas.drawLine(y,startX,y, endX, mPaint); } }} |