1.参考:http://blog.csdn.net/rhljiayou/article/details/7212620/

2.常用方法:

  1.Canvas类

drawArc 绘制弧

drawBitmap 绘制位图

drawCircle 绘制圆形

drawLine 绘制线

drawOval 绘制椭圆

drawPath 绘制路径

drawPoint 绘制一个点

drawPoints 绘制多个点

drawRect 绘制矩形

drawRoundRect 绘制圆角矩形

drawText 绘制字符串

drawTextOnPath 沿着路径绘制字符串

  2.Paint类:

setARGB/setColor 设置颜色

setAlpha 设置透明度

setAntiAlias 设置是否抗锯齿

setShader 设置画笔的填充效果

setShadowLayer 设置阴影

setStyle 设置画笔风格

setStrokeWidth 设置空心边框的宽度

setTextSize 设置绘制文本时文字的大小

setStrokeCap(Paint.Cap.ROUND) 设置为圆角

3.代码如下:

  1. public class DrawView extends View {
  2.  
  3. public DrawView(Context context) {
  4. super(context);
  5. }
  6.  
  7. public DrawView(Context context, @Nullable AttributeSet attrs) {
  8. super(context, attrs);
  9. }
  10.  
  11. @Override
  12. protected void onDraw(Canvas canvas) {
  13. super.onDraw(canvas);
  14. /*
  15. * 方法 说明 drawRect 绘制矩形 drawCircle 绘制圆形 drawOval 绘制椭圆 drawPath 绘制任意多边形
  16. * drawLine 绘制直线 drawPoin 绘制点
  17. */
  18.  
  19. //设置画笔
  20. Paint paint=new Paint();
  21. paint.setAntiAlias(true);
  22. paint.setColor(Color.RED);
  23. paint.setStyle(Paint.Style.STROKE);
  24.  
  25. //画文本
  26. canvas.drawText("画圆",20,30,paint);
  27. //画圆
  28. canvas.drawCircle(100,30,30,paint);
  29.  
  30. //画线
  31. paint.setColor(Color.BLACK);
  32. canvas.drawText("画线及圆弧",10,80,paint);
  33. canvas.drawLine(10,90,310,90,paint);//直线
  34. canvas.drawLine(330,90,430,150,paint);//斜线
  35.  
  36. //画圆弧及扇形
  37. RectF oval1=new RectF(10,160,110,260);
  38. paint.setColor(Color.GREEN);
  39.  
  40. canvas.drawArc(oval1,180,180,false,paint);
  41. //第一个参数:范围 第二个参数:开始角度 第三个参数:圆弧度数
  42. //第四个参数:false---圆弧 true---扇形
  43. //第五个参数:画笔
  44.  
  45. oval1.set( 120,160,220,260);
  46. canvas.drawArc(oval1,20,60,true,paint);
  47.  
  48. oval1.set(230,160,330,260);
  49. canvas.drawArc(oval1,200,240,true,paint);
  50.  
  51. //画矩形
  52. paint.setColor(Color.BLUE);
  53. canvas.drawRect(10,280,210,380,paint);
  54.  
  55. //绘制圆角矩形
  56. RectF re1=new RectF(250,280,450,380);
  57. canvas.drawRoundRect(re1,15,15,paint);
  58.  
  59. //画椭圆
  60. RectF re2=new RectF(10,400,210,500);
  61. canvas.drawOval(re2, paint);
  62.  
  63. //画三角形
  64. paint.setColor(Color.DKGRAY);
  65. Path path=new Path();
  66. path.moveTo(70,520);
  67. path.lineTo(10,580);
  68. path.lineTo(130,580);
  69. path.close();
  70. canvas.drawPath(path,paint);
  71.  
  72. //画点
  73. paint.setStyle(Paint.Style.FILL);
  74. canvas.drawPoint(10,600,paint);//一个点
  75. canvas.drawPoints(new float[]{20,600,30,600,40,600},paint);//多个点
  76.  
  77. //画贝塞尔曲线
  78. paint.setStyle(Paint.Style.STROKE);
  79. paint.setColor(Color.RED);
  80. Path path1=new Path();
  81. path1.moveTo(100,620);
  82. path1.quadTo(150,550,170,700);
  83. canvas.drawPath(path1,paint);
  84.  
  85. //画图片
  86. Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.pic6);
  87. // canvas.drawBitmap(bitmap,100,610,paint);//不限定图片大小 只指定左上角坐标
  88. RectF rectF=new RectF(100,710,400,1010);
  89. canvas.drawBitmap(bitmap,null,rectF,paint);//限定图片显示范围
  90.  
  91. //-----------------设置渐变后绘制------------------
  92.  
  93. //Paint设置渐变器
  94. Shader mShader=new LinearGradient(0,0,40,60,
  95. new int[]{Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW},
  96. null,Shader.TileMode.REPEAT);
  97. paint.setShader(mShader);
  98. paint.setStyle(Paint.Style.FILL);
  99. //设置阴影
  100. paint.setShadowLayer(45,10,10,Color.BLACK);
  101.  
  102. canvas.drawRect(440,710,640,910,paint);
  103.  
  104. }
  105. }

4.效果图:

Android使用Canvas画图的更多相关文章

  1. android canvas 画图笔记

    android canvas 画图笔记 1.PathEffect类 画虚线 Paint p = new Paint(Paint.ANTI_ALIAS_FLAG); p.setStyle(Paint.S ...

  2. Android开发之画图的实现

    Android开发之画图的实现    四天前上完安卓的第一节课,真的是一脸懵逼,尽管熊哥说和java是差不多的,然而这个包和那个包之间的那些转换都是些什么鬼呀!!!但是四天的学习和操作下来,我觉得安卓 ...

  3. Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形) .

    1.首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, ...

  4. Android之canvas详解

    首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...

  5. Android中利用画图类和线程画出闪烁的心形

                                                        本文讲解主要涉及的知识点: 1.线程控制 2.画图类 3.心形函数 大家先看图片: <ig ...

  6. Android之自定义画图文字动画

    结构: BaseView: package com.caiduping.canvas; import android.content.Context; import android.graphics. ...

  7. Android利用canvas画各种图形 及Paint用法 .

    引自:http://blog.csdn.net/carlfan/article/details/8139984 1.首先说一下canvas类: Class Overview The Canvas cl ...

  8. android学习5——画图问题

    重写View中的onDraw函数可以实现画图.代码如下: @Override public void onDraw(Canvas canvas) { Paint paint = new Paint() ...

  9. html5 canvas 画图移动端出现锯齿毛边的解决方法

    使用HTML5的canvas元素画出来的.在移动端手机上测试都发现画图有一点锯齿问题 出现这个问题的原因应该是手机的宽是720像素的, 而这个canvas是按照小于720像素画出来的, 所以在720像 ...

随机推荐

  1. MySQL-5.7中InnoDB表数据文件存储位置

    学习地址:https://www.cnblogs.com/tongxiaoda/p/7874535.html

  2. maven help:system

    lifecycle:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html bindings:ht ...

  3. spring的@Transactional注解详细用法(转)

    概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性.Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供一致的编程模型, ...

  4. 学习FPGA需要做哪些

    有些人比较差,做了一些介绍,有误导成分.有些人水平太高,介绍的很好,但是很多人依旧听不懂,得到的肯定很少.学习FPGA,在不同层次的人明显有不同的答案. 熟悉硬件描述语言语法,不需要什么都会,但是要记 ...

  5. zabbix snmp 协议监控 dell iRDAC

    转摘:http://blog.csdn.net/wanglei_storage/article/details/52789921 http://blog.csdn.net/wanglei_storag ...

  6. 基本教程篇--第一节:InitialSampleDemo.cs介绍

       第一节:InitialSampleDemo.cs介绍         为了讲解方便,我先附上源代码和效果图. 代码如下: using System; using System.Drawing; ...

  7. Strom简单介绍

    1.离线计算是什么? 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据. ...

  8. ResponseUtil

    package util; import java.io.OutputStream; import java.io.PrintWriter; import javax.servlet.http.Htt ...

  9. kibana-4.6.3-linux-x86_64.tar.gz的下载(图文详解)

    对于Kibana ,我们知道,是Elasticsearch/Logstash/Kibana的必不可少成员. 第一步:进入Elasticsearch的官网 https://www.elastic.co/ ...

  10. vmware 仅主机模式 ip配置

    首先关闭防火墙 主机(宿主机器 win7) 虚拟机(xp) 3..重要提示:  如果ping不通首先考虑防火墙的问题!!! vmware配置: nat模式下玩耍: 1. 配置nat的虚拟网卡:  2. ...