为了账号安全,请及时绑定邮箱和手机立即绑定

我运行中线的清晰程度不一样啊,有些都快看不起见了。

package com.example.admin.wuziqi;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;


public class wuziqipanel extends View  {

    private int panlWidth;//棋盘宽度
    private  float lineHeight;
    private int Max_LINE = 10;

    private  Paint mPaint = new Paint();

    public wuziqipanel(Context context, @Nullable 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);

        panlWidth = w;
        lineHeight = panlWidth * 1.0f /Max_LINE;

    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        drawBoard(canvas);
    }

    private void drawBoard(Canvas canvas){
        int w =panlWidth;
        float h = lineHeight;

        for(int i =0 ;i<Max_LINE;i++){
            int startX = (int)(h/2);
            int endX = (int)(w-h/2);

            int y =(int)((0.5 + i) * h);
            canvas.drawLine(startX,y,endX,y,mPaint);
            canvas.drawLine(y,startX,y,endX,mPaint);
        }

    }
}

https://img1.sycdn.imooc.com//5c1b63a40001204604590820.jpg

正在回答

1 回答

要么是虚拟机的问题  要么是API版本的问题 你在真机上运行效果就OK了 我也是这种情况

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android-五子连珠
  • 参与学习       39006    人
  • 解答问题       166    个

Android游戏开发-五子连珠,本教程通过UI与逻辑实现双人对战

进入课程

我运行中线的清晰程度不一样啊,有些都快看不起见了。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信