Advertisement

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

阅读量:
  • @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年码龄,通宵达旦的技术人生
]()

最后

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

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

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

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

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

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

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

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

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

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

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

全部评论 (0)

还没有任何评论哟~