Advertisement

Android 自定义View 画圆(奥运五环),2024年Android开发陷入饱和,

阅读量:

随后,在XML文件activity_main.xml中使用该Custom时,请确保创建或引用自定义视图时需要完整地指定其包名路径。具体操作步骤如下:

在这里插入图片描述

现在你可以启动程序,在真机或者模拟器上都可以进行测试。在开始测试之前,请先确认项目没有问题,在遇到任何问题时可以减少排查步骤的经验是我们在实际开发中总结出来的经验。但当你运行后发现没有任何内容时

下面在CustomView写下如下代码

/**

在纸上画画 (通俗理解)

@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素材库的支持?

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

让我们尝试绘制两个相邻的圆。如果两圆水平相切,则其中一个圆心在x轴上的坐标应等于另一端点加上直径长度之和。上一例中观察到第一个端点位于x=150处,并且半径为100单位,则由此可知第二个端点必定位于x=350处(因为150+2×100=35)。这一次我们将保持半径不变,并仅调整x轴位置进行测试

在这里插入图片描述

运行结果如下图

在这里插入图片描述

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

在这里插入图片描述

运行效果如下图所示

在这里插入图片描述

除了颜色相同之外还是比较像的。你可以随意更改 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年的职业生涯,在技术人生的长夜中从未停下脚步。

简单介绍一下自己吧!我是2013年毕业于上海交通大学(13年),毕业后曾在小型公司工作过一段时间。后又曾前往华为、OPPO等知名大厂实习过。自2018年以来一直在阿里巴巴工作至今。

许多初中级Android工程师普遍面临技能提升困难。
在自我学习或参加培训方面存在诸多挑战。
由于高昂的学费成本(通常在数万元),选择培训机构学习会带来较大的经济压力。
若仅靠自主学习缺乏系统性,则学习效果低下且耗时漫长。
同时容易遇到技术瓶颈而停滞不前。

为此整理出一套完整的学习资料库。初建这份学习资料库的原因很简单,并非有意要创造什么特殊的东西。我们希望通过这份《2024年Android移动开发全套学习资料》,为那些渴望通过自主学习提升技术却又感到迷茫不知所措的人们提供一个便捷的学习平台。同时我们还特别希望这份材料能够尽可能地减少不必要的学习负担。

img
img
img
img

针对初学者提供的零基础学习材料和针对有三年以上开发经验者设计的高级课程应有尽有,在Android开发领域几乎涵盖了所有知识点,并真正形成了一个完整的体系。

因为文件较大,在此仅对部分目录进行了截图展示,并且每个节点都包含了多种资源如大厂面经、学习笔记以及源码讲义等,并会持续进行更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

分享读者

自2013年起转向Android领域开发,在中小型公司积累了一定的工作经验,并曾访问并参与了华为与OPPO等知名企业的项目。自2018年4月起入职阿里巴巴至今

曾参与过多次面试工作,并积累了丰富的面试经验。深刻了解大多数初级、中级Android开发人员希望提升技能的现状:他们通常会自主学习成长,在缺乏系统性学习的情况下导致效率低下且持续时间较长,并往往面临技术瓶颈难以突破。

我们为阿里P7级的专业学习资料包提供给有3-5年开发经验的Android架构师们。

我们主要关注的一线互联网公司主流架构技术涵盖Tencent, ByteDance, Alibaba Group, Huawei, Xiaomi等

腾讯T3架构师学习专题资料

如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!

我们致力于创建一个公平、高质的Android交流社区。虽然短期内可能不会让每个人技术迅速提升但长远而言培养眼光与格局是最重要的目标。

到了35岁以后的人生阶段时你的财富积累将超越同龄人。这是因为在这个年龄段人们往往会被短期利益的诱惑所左右,在未充分考虑自身价值的情况下过度消耗资源。如果一开始就能制定一个科学合理的长期职业发展计划那么你就能在职业生涯中获得更大的发展空间与更高的经济回报。

《互联网巨头公司面试题解析:深入开发技术核心知识点总结 + 完整课程视频资源 + 实际项目代码案例分析》通过点击传送门即可访问!

我们致力于构建一个公平且高水平的Android交流圈子。短期内可能看不到每个人技术素养得到显著提升的效果;但从长期发展的角度来看, 光环视野, 宽广胸怀, 长期发展道路才是关键。

35岁的中年危机往往源于被短期利益驱使,在未充分评估自身价值之前就进行过度投资;若能够一开始就建立一个合理的长期职业发展计划,则可有效规避这一风险。而到了35岁以后的你,在这方面的能力必定会超越身边的人群。

《互联网大厂面试真题解析班、系统化进阶开发学习笔记、配套讲解视频资源、实战项目源码精讲资源》点击下方传送门即可获取!

全部评论 (0)

还没有任何评论哟~