- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自定义view(二)五子棋
自定义view(二)五子棋
画棋盘
首先自定义view的四部曲
1,在attrs中申明自定义的属性
2,在View的构造方法中获得我们自定义的属性
3,重写onMeasure方法
4,重写ondraw方法
五子棋的自定义属性我都写死了,也可以不写死,写在attrs中动态的改变,这样都可以
生成构造方法
public WuZiQiView(Context context, AttributeSet attrs) {
super(context, attrs);
//设置一个背景颜色用来区分我们自定义的view的大小最后的时候去掉
setBackgroundColor(0x44ff0000);
init();
}
//棋盘的线条数
private int maxline = 10;
//棋盘的宽度
private int mpanelWidth;
//每一行的高度
private float mLineHeight;
//新建一只画棋盘的画笔
private Paint mPaint = new Paint();
重写onmeasure方法
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int heightSize = MeasureSpec.getSize(heightMeasureSpec);
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
//取view的宽度
int width = Math.min(widthSize, heightSize);
if (heightMode == MeasureSpec.UNSPECIFIED) {
//测量模式为不确定的时候也取view的宽度
width = widthSize;
} else if (widthMode == MeasureSpec.UNSPECIFIED) {
width = heightSize;
}
//设置自定义view的宽度和高度
setMeasuredDimension(width, width);
}
获取棋盘的高度
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
//设置view的宽度为棋盘的宽度
mpanelWidth = w;
//获取每一行的宽度=棋盘的宽度/行数
mLineHeight = mpanelWidth * 1.0f / maxline;
}
重写ondraw方法
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//画棋盘
doawBoard(canvas);
}
//初始化画笔
private void init() {
//设置颜色
mPaint.setColor(0;
//抗锯齿
mPaint.setAntiAlias(true);
//防抖动
mPaint.setDither(true);
//Paint.Style.STROKE 仅描边
mPaint.setStyle(Paint.Style.STROKE);
}
private void doawBoard(Canvas canvas) {
int w
您可能关注的文档
- 脑血管病与侧枝循环指南.ppt
- 肢体语言在小学英语教学中的实践与探究.ppt
- 腹有诗书气自华ppt.ppt
- 肌内效贴在运动损伤中的应用.pptx
- 腺病毒载体构建.ppt
- 腾冲市第八中学青年教师授课比赛4.2 直线、射线、线段 (共15张PPT).ppt
- 膳食中心管理方案.doc
- 腹腔镜下子宫办法切除.ppt
- 自信是成功的前提.pptx
- 自主呼吸与机械通气协调周小玉.ppt
- 中国国家标准 GB 10395.6-2025农业机械 安全 第6部分:植物保护机械.pdf
- GB 10395.6-2025农业机械 安全 第6部分:植物保护机械.pdf
- GB 10395.7-2025农业机械 安全 第7部分:联合收割机、饲料收获机、棉花收获机和甘蔗收获机.pdf
- 中国国家标准 GB 10395.7-2025农业机械 安全 第7部分:联合收割机、饲料收获机、棉花收获机和甘蔗收获机.pdf
- 《GB 10395.7-2025农业机械 安全 第7部分:联合收割机、饲料收获机、棉花收获机和甘蔗收获机》.pdf
- GB/T 42076.2-2025生物技术 细胞计数 第2部分:量化计数方法性能的实验设计与统计分析.pdf
- 中国国家标准 GB/T 42076.2-2025生物技术 细胞计数 第2部分:量化计数方法性能的实验设计与统计分析.pdf
- 《GB/T 42076.2-2025生物技术 细胞计数 第2部分:量化计数方法性能的实验设计与统计分析》.pdf
- GB/T 46735.1-2025高温蓄电池 第1部分:一般要求.pdf
- 《GB/T 46735.1-2025高温蓄电池 第1部分:一般要求》.pdf
最近下载
- 《作业治疗学》课程考试复习题库(含答案).docx VIP
- 部编版小学六年级语文上册 期末全真模拟卷(重点小学)【含答案】.pdf VIP
- 作业治疗学考试题库带答案.doc VIP
- 工程监理方案技术标.docx
- 2024中小学生网络安全知识竞赛题库及答案.docx VIP
- PEP小学英语小学六年级上册期末试卷(含答案).pdf VIP
- NB_T 47014-2023承压设备焊接工艺评定.pdf VIP
- 广东深深圳市深圳中学2025届语文高一第二学期期末教学质量检测模拟试题含解析.doc VIP
- 广东深深圳市深圳中学2025年高一下语文期末统考模拟试题含解析.doc VIP
- 肩关节镜下肩袖修补术手术配合.pptx VIP
原创力文档


文档评论(0)