Android 自定义View 画圆(奥运五环)

本文通过逐步讲解如何使用AndroidCanvas绘制圆形,包括空心与实心圆,颜色配置,以及奥运五环的实现,强调了系统化学习和代码实践对技术提升的重要性。作者还分享了学习资源和鼓励团队协作学习。
摘要由CSDN通过智能技术生成
  • @param canvas 纸

*/

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

Paint paint = new Paint();//创建画笔对象 笔

paint.setColor(Color.BLACK);//设置颜色

paint.setStyle(Paint.Style.STROKE);//画笔样式为空心,也可以理解为描边

paint.setStrokeWidth(4);//描边的宽度

paint.setAntiAlias(true);//抗锯齿(去掉锯齿)

/**

  • 画圆

  • 参数一:圆心的X轴坐标

  • 参数二:圆心的Y轴坐标

  • 参数三:圆的半径

  • 参数四:画笔对象

*/

canvas.drawCircle(150,150,100,paint);//完成

}

我相信注释得已经很清楚了,这个时候你运行一下,就会看到一个黑色的空心圆

在这里插入图片描述

然后再修改一下代码,画一个实心圆

在这里插入图片描述

再运行一下

在这里插入图片描述

**canvas.drawCircle(150,150,100,paint);**表示圆心在横坐标和纵坐标都为150的位置,以半径为100画一个圆,可以把这一行代码复制四次,然后改变半径的大小,为了看到效果,还是画空心圆

在这里插入图片描述

然后运行一下,就可以看到

在这里插入图片描述

是不是觉得有点意思了。平时像这种图案你会自己去画吗?还是找UI切图呢?

刚才我们只是改变了半径而已,下面试着改变横坐标和纵坐标。

我们试着画两个圆挨着,如果是横向挨着就要使一个圆的圆心横坐标位置等于另一个圆的圆心横坐标加上直径的和,刚才我们看到一个横坐标是150,半径是100,那么结果很明显第二个圆的圆心的位置就是350,这次我们不改变半径大小,只改变横坐标试一下

在这里插入图片描述

运行结果如下图

在这里插入图片描述

接下来运用这个思路来画一个奥运五环吧

在这里插入图片描述

运行效果如下图所示

在这里插入图片描述

除了没有颜色还是比较像的。你想要改颜色就可以自由改变setColor就可以了。下面改动一下代码

/**

  • 根据传入的颜色配置不同的画笔

  • @param color 颜色

  • @return

*/

private Paint customPaint(int color){

Paint paint = new Paint();//创建画笔对象 笔

paint.setColor(color);

paint.setStyle(Paint.Style.STROKE);

paint.setStrokeWidth(8);

paint.setAntiAlias(true);

return paint;

}

然后我们在onDraw中调用

/**

  • 在纸上画画 (通俗理解)

  • @param canvas 纸

*/

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

/**

  • 画圆

  • 参数一:圆心的X轴坐标

  • 参数二:圆心的Y轴坐标

  • 参数三:圆的半径

  • 参数四:画笔对象

*/

canvas.drawCircle(150,150,100,customPaint(Color.BLUE));//完成

canvas.drawCircle(370,150,100,customPaint(Color.BLACK));

canvas.drawCircle(590,150,100,customPaint(Color.RED));

canvas.drawCircle(260,250,100,customPaint(Color.YELLOW));

canvas.drawCircle(480,250,100,customPaint(Color.GREEN));

}

运行效果如下:

在这里插入图片描述

[

超强干货来袭
云风专访:近40年码龄,通宵达旦的技术人生
](https://newprogrammer.blog.csdn.net/article/details/124146229?utm_campaign=marketingcard&utm_source=qq_38436214&utm_content=107242851)

最后

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

同时我经过多年的收藏目前也算收集到了一套完整的学习资料以及高清详细的Android架构进阶学习导图及笔记分享给大家,希望对想成为架构师的朋友有一定的参考和帮助。

下面是部分资料截图,诚意满满:特别适合有开发经验的Android程序员们学习。

不论遇到什么困难,都不应该成为我们放弃的理由!

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值