• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

我的棋盘只有横竖各一条线?

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);        }    }}

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

你的第63行
inty=(int)((0.5+i)*lineHeight);//把加号改成乘号这样改应该就好了,i是第i条线,每条线之间间隔lineHeight那么大的距离刚开始从0.5开始估计是要和屏幕边界有间距吧,所以每次第i条线都要多lineHeight 所以要用乘的,i条线的y轴位置是i*lineHeight + 0.5*lineHeight,0.5*lineHeight是加上的边界

使用道具 举报

发新帖

发布任务需求已有1031166位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!