public class WuziqiPanel extends View { private int mPanelwidth; private float mLineheight; private int MAX_LINE = 10; 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); mPanelwidth = w; mLineheight = mLineheight*1.0f/MAX_LINE; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); drawBoard(canvas); } private void drawBoard(Canvas canvas) { int w = mPanelwidth; 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); } } }
qq_匡璐_0
相关分类