前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >017android初级篇之android canvas的使用

017android初级篇之android canvas的使用

作者头像
上善若水.夏
发布2018-09-28 10:38:13
1.5K0
发布2018-09-28 10:38:13
举报
文章被收录于专栏:上善若水上善若水上善若水

理由canvas绘制各种图形

Canvas的意思是画布,表现在屏幕上就是一块区域,我们可以再上面使用各种API绘制我们想要的东西。 一个Canvas对象有四大基本要素:

  1. 一个用来保存像素的Bitmap
  2. 一个Canvas在Bitmap上进行绘制操作
  3. 绘制的东西
  4. 绘制的画笔Paint

如何获得一个Canvas对象。

Canvas对象的获取方式有三种:

  1. 我们通过重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来,我们操作这个Canvas,效果会直接反应在View中。
  2. 就是当你想自己创建一个Canvas对象。从上面的基本要素可以明白,一个Canvas对象一定是结合了一个Bitmap对象的。所以一定要为一个Canvas对象设置一个Bitmap对象。
Bitmap b = Bitmap.createBitmap(100,100, Bitmap.Config.ARGB_8888);  
Canvas c = new Canvas(b);  
  1. 是调用SurfaceHolder.lockCanvas(),返回一个Canvas对象。

其构造函数:

Canvas()
    Construct an empty raster canvas.
Canvas(Bitmap bitmap)
    Construct a canvas with the specified bitmap to draw into.
Canvas(GL gl)
    Construct a canvas with the specified gl context.

Canvas能绘制什么

Canvas类提供了一系列的draw...方法,从这些方法的名字就可以知道Canvas可以绘制的对象。

1. 填充

1. public void drawARGB(int a, int r, int g, int b)  
Fill the entire canvas' bitmap (restricted to the current clip) with the specified ARGB color, using srcover porterduff mode.
其中第一个参数代表透明度。
2. public void drawColor(int color)  
3. public void drawRGB(int r, int g, int b)  
4. public void drawColor(int color, PorterDuff.Mode mode)  

2. 绘制几何图像

canvas.drawArc (扇形)
canvas.drawCircle(圆)
canvas.drawOval(椭圆)
canvas.drawLine(线)
canvas.drawPoint(点)
canvas.drawRect(矩形)
canvas.drawRoundRect(圆角矩形)
canvas.drawVertices(顶点)
cnavas.drawPath(路径)

3. 绘制文本

paint.setStrokeWidth(0);       空心的宽度
paint.setColor(textColor);
paint.setTextSize(textSize);
paint.setTypeface(Typeface.DEFAULT_BOLD); //设置字体
float y = paint.getFontMetrics().bottom - paint.getFontMetrics().top; //可用来计算字体的宽度
canvas.drawText(stepNumStr,centre-stepNumStrWidth/2,centre -2*y,paint);

常用字体类型:

Typeface.DEFAULT //常规字体类型
Typeface.DEFAULT_BOLD //黑体字体类型
Typeface.MONOSPACE //等宽字体类型
Typeface.SANS_SERIF //sans serif字体类型
Typeface.BOLD //粗体
Typeface.BOLD_ITALIC //粗斜体
Typeface.ITALIC //斜体
Typeface.NORMAL //常规

绘制图片

canvas.drawBitmap (位图) canvas.drawPicture (图片)

Canvas的变换

Canvas还提供了一系列位置转换的方法:rorate、scale、translate、skew(扭曲)等。

参考链接

  1. Android Canvas API
  2. Android 2D Graphics学习(二)、Canvas篇1、Canvas基本使用
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015.11.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 理由canvas绘制各种图形
  • 如何获得一个Canvas对象。
  • Canvas能绘制什么
    • 1. 填充
      • 2. 绘制几何图像
        • 3. 绘制文本
          • 绘制图片
            • Canvas的变换
            • 参考链接
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档