• 大小: 49KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: Java
  • 标签: 中国象棋  

资源简介

本次上传了Android自定义中国象棋的java文件,下载后可直接使用浏览。在xml里面写好运行即可。后续会继续更新。。

资源截图

代码片段和文件信息

package com.example.myapplication.coustom;

import android.app.Activity;
import android.content.Context;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.os.Build;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;

import com.example.myapplication.VibrateUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * email:1040152329@qq.com
 * Created by gold on 2019/10/30
 * Describe:
 **/
public class ChineseChessView extends View {
    private Paint linePaint;//画线的笔
    private Paint qiPaint;//棋子文子画笔
    private Paint qibackPaint;//棋子背景画笔
    private int lineColor=0xffEEDC82;
    private int redColor=0xffFFA54F;
    private int blockColor=0xff008B00;
    private int selectColor=0xff3A5FCD;
    public ChineseChessView(Context context) {
        this(contextnull);

    }

    private int strokeWidth=5;
    private void initView() {
        linePaint=new Paint();
        qibackPaint=new Paint();
        qiPaint=new Paint();
        initSetting();
    }

    private void initSetting() {
        linePaint.setAntiAlias(true);
        linePaint.setColor(lineColor);
        linePaint.setstyle(Paint.style.STROKE);

        qiPaint.setAntiAlias(true);
        qiPaint.setColor(lineColor);
        qiPaint.setTypeface(Typeface.create(Typeface.DEFAULTTypeface.BOLD));

        qibackPaint.setColor(0xffEEDC82);
        qibackPaint.setstyle(Paint.style.FILL);
        qibackPaint.setMaskFilter(new BlurMaskFilter(20BlurMaskFilter.Blur.NORMAL));
        qibackPaint.setAntiAlias(true);
    }

    public ChineseChessView(Context context @Nullable AttributeSet attrs) {
        this(context attrs0);
    }

    public ChineseChessView(Context context @Nullable AttributeSet attrs int defstyleAttr) {
        super(context attrs defstyleAttr);
        initView();
    }

    @Override
    protected void onMeasure(int widthMeasureSpec int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec heightMeasureSpec);
    }

    private int h;
    private int w;
    private int startXstartY;//起始绘制位置
    private int defaultPadding=50;
    private int hang = 9;//行
    private int lie = 8; //列
    private int space;
    //存放所有位置信息 [XY0车] 依次对应 【x坐标、y坐标、红黑方、棋子】
    private List> allDatas=new ArrayList<>();
    private List> allDatasDefault=new ArrayList<>();
    private List>> back_datas=new ArrayList<>();//下棋落子记录,用于悔棋时调用
    private boolean isInit=true;//是否第一次进来————初始化棋盘
    @Override
    protected void onSizeChanged(int w int h int oldw int oldh) {
        super.onSizeChanged(w h oldw old

评论

共有 条评论