一、新建一个视图类,继承自View,重写OnDraw()函数,在函数内绘图


public class myView extends View {//新建一个视图类,继承自View
myView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
//在下面绘图 }

二、Paint设置

Paint就是我们的画笔,我们可以设置它的颜色,粗细,样式,阴影等,在绘图的时候,我们要先实例化画笔工具

Paint paint = new Paint();

设置画笔颜色

paint.setColor(Color.BLUE);//设置画笔为蓝色

设置画笔的样式

paint.setStyle(Style.FILL);//填充内部

样式有三种

FILL:填充内部  FILL_AND_STROKE:填充内部和描边 STROKE:只描边

默认为FILL吧,前2种看不出差别

设置画笔宽度

paint.setStrokeWidth(10);//宽度10

设置阴影

paint.setShadowLayer(8, 20, 20, Color.RED);//设置阴影

//第一个参数是阴影的倾斜度
//第二个参数是水平位移
//第三个参数是垂直位移

好吧,虽然不是很明显的样子-.-

setTextSize(float textSize)  // 设置字体大小

setUnderlineText(booleanunderlineText)  // 设置下划线

三、Canvas设置

Canvas就是画布,我们可以在上面绘图

画布背景颜色设置

canvas.drawColor(Color.BLUE);
canvas.drawRGB(255, 255, 0); //两种方法

四、图形的绘制方法

画圆

 drawCircle (float cx, float cy, float radius, Paint paint);
  //cx:圆点的X坐标
  //cy:圆点的Y坐标
  //radius:圆点的半径
  //paint:自定义的画笔

需要说明的是,绘制图形的坐标圆点位置是屏幕左上角,以那里为圆点

画矩形

Paint paint = new Paint();
paint.setColor(Color.RED);
// 设置样式-空心矩形
paint.setStyle(Style.STROKE);
// 绘制一个矩形
canvas.drawRect(new Rect(10, 10, 100, 30), paint);//使用Rect构造
//左上角(10,10) 右上角(100,30)

4个点:左上右下的排列,其实就是2个坐标(10,10),(100,30)

绘制字体

drawText(String text, float x, floaty, Paint paint)  //渲染文本,Canvas类除了上面的还可以描绘文字,参数一是String类型的文本,参数二x轴,参数三y轴,参数四是Paint对象。

绘制直线

drawLine(float startX, float startY, float stopX, float stopY, Paintpaint) //画线,参数一起始点的x轴位置,参数二起始点的y轴位置,参数三终点的x轴水平位置,参数四y轴垂直位置,最后一个参数为Paint 画刷对象。

绘制点

drawPoint (float x, float y, Paint paint)
//float X:点的X坐标
//float Y:点的Y坐标

五,把视图类添加到Activity中

很简单,直接实例化我们的视图类myView,在用setContentView(view);

myView mv = new myView(this);

setContentView(mv);

Android自定义view绘图的更多相关文章

  1. Android自定义View绘图实现拖影动画

    前几天在"Android绘图之渐隐动画"一文中通过画线实现了渐隐动画,但里面有个问题,画笔较粗(大于1)时线段之间会有裂隙,我又改进了一下.这次效果好多了. 先看效果吧: 然后我们 ...

  2. Android 自定义View及其在布局文件中的使用示例(二)

    转载请注明出处 http://www.cnblogs.com/crashmaker/p/3530213.html From crash_coder linguowu linguowu0622@gami ...

  3. [原] Android 自定义View步骤

    例子如下:Android 自定义View 密码框 例子 1 良好的自定义View 易用,标准,开放. 一个设计良好的自定义view和其他设计良好的类很像.封装了某个具有易用性接口的功能组合,这些功能能 ...

  4. Android自定义View之ProgressBar出场记

    关于自定义View,我们前面已经有三篇文章在介绍了,如果筒子们还没阅读,建议先看一下,分别是android自定义View之钟表诞生记.android自定义View之仿通讯录侧边栏滑动,实现A-Z字母检 ...

  5. Android 自定义 View 圆形进度条总结

    Android 自定义圆形进度条总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 微信公众号:牙锅子 源码:CircleProgress 文中如有纰漏,欢迎大家留言指出. 最近 ...

  6. Android自定义View 画弧形,文字,并增加动画效果

    一个简单的Android自定义View的demo,画弧形,文字,开启一个多线程更新ui界面,在子线程更新ui是不允许的,但是View提供了方法,让我们来了解下吧. 1.封装一个抽象的View类   B ...

  7. (转)[原] Android 自定义View 密码框 例子

    遵从准则 暴露您view中所有影响可见外观的属性或者行为. 通过XML添加和设置样式 通过元素的属性来控制其外观和行为,支持和重要事件交流的事件监听器 详细步骤见:Android 自定义View步骤 ...

  8. Android 自定义View合集

    自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...

  9. Android 自定义View (五)——实践

    前言: 前面已经介绍了<Android 自定义 view(四)-- onMeasure 方法理解>,那么这次我们就来小实践下吧 任务: 公司现有两个任务需要我完成 (1)监测液化天然气液压 ...

随机推荐

  1. navigator(浏览器对象)Screen对象(屏幕)

    浅谈navigator对象: 注意:不是所有浏览器都支持 .cookieEnabled  判断是否启用了cookie  在客户端硬盘持久保存用户私密数据的小文件 .plugins 浏览器安装的所有插件 ...

  2. ios下按钮click事件点击穿透问题

    和app进行混合开发的时候,一个页面使用h5写的,按钮上绑定click事件会触发下面图片上的a链接导致跳转,页面如图 顶部是一个banner,分vr.视频.图片三部分,红框处的三个nav按钮绑定cli ...

  3. MacOS X GateKeeper Bypass

    MacOS X GateKeeper Bypass OVERVIEW On MacOS X version <= 10.14.5 (at time of writing) is it possi ...

  4. EWA不能及时通过邮件接收

    1. 确保EWA已经配置成功.可以通过SW_workcenter查看 2.确保EWA的邮箱设置成功 3. 检查EWAreport产生的时间 卫星系统:SDCCN 在tab"done" ...

  5. SDL -安全开发生命周期

    1.学习SDL https://www.cnblogs.com/whoami101/p/9914862.html 2.学习SDL https://blog.csdn.net/whatday/artic ...

  6. CentOS7安装CDH 第十三章:CDH资源池配置

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  7. Hive安装配置详解步骤以及hive使用mysql配置

    Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据.它架构在Hadoop之上,总归为大数据,并使得查询和分析方便.并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务 ...

  8. mysql案例分析

    工作中,需要设计一个数据库存储,项目的需求大致如下: (1)对于每个用户,需要存储一个或多个库, 每个库, 由一个用户标识来标识,这里成为clientFlag. (2) 对于每一个库,结构如下: 1) ...

  9. JAVA 查找某个目录是否存在,如果存在,打印出来

    题目:现有如下目录结构,查找结构中是否存在Directory11,如果存在,打印出来 |---test |---|---Directory1 |---|---|---Directory11 |---| ...

  10. python之约束、加密及logging模块

    一.什么是约束? 在生活中的约束大概就是有什么原因,导致你不能做这件事情了,称之为约束.而在python中的约束是在当多个类中,都需要使用某些方法时,需要人为抛出异常或使用基类+异常处理来进行约束 c ...