`
王树雄
  • 浏览: 242976 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Canvas 和Paint 的联系

 
阅读更多
  刚刚开始接触学习Android的同鞋们在看到工程中出现的那么多的canvas啦、paint啦等等的使用的时候,都会惊讶于由这些方法创作出来的perfect界面,但同时也会对这些方法的使用感到困惑,他们大多时间他们都一块儿出现,到底他们是个什么样的关系?又该怎样用他们呢?
  我们想象一个画面:一个小孩儿在一块画板上画画(虽然画的是啥咱不知到啦~~~)
  在Android中,Canvas其实就相当与那小孩儿画板上的那块画布啦!(网上大多都这样解释,但是我觉得还不是很准确,因为这块画布不仅仅就只是在那边随你怎么画啦,它会给你很多帮助的哟,比如你要画矩形的画,就不用自己去找三角板啊啥的了,直接拿它的“模板——drawRect(RectF rect, Paint paint)”过来用就可以啦,只要改改参数就OK哈~~~)他主要实现屏幕的绘制,包括配合Matrx矩阵实现的图像旋转、剪裁以及选取等功能。Canvas类中有很多实用的方法,列举部分如下:
void drawRect(RectF rect, Paint paint) //绘制区域,参数一为RectF一个区域

void drawPath(Path path, Paint paint) //绘制一个路径,参数一为Path路径对象 

void  drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)  //贴图,参数一就是我们常规的Bitmap对象,参数二是源区域(这里是bitmap),参数三是目标区域(应该在 canvas的位置和大小),参数四是Paint画刷对象,因为用到了缩放和拉伸的可能,当原始Rect不等于目标Rect时性能将会有大幅损失。 

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

void  drawPoint(float x, float y, Paint paint) //画点,参数一水平x轴,参数二垂直y轴,第三个参数为Paint对象。

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

void  drawTextOnPath(String text, Path path, float hOffset, float vOffset, Paint paint) //在路径上绘制文本,相对于上面第二个参数是Path路径对象
          再来看看paint哈~在上面列举的canvas类中的方法中也可以看到出现了很多次的paint,再回到那个画画的小孩儿,其实这边的paint就相当于那个小孩儿手中的画图工具——也就是画笔喽^_^  这个画图工具既然是那个小孩儿的,那肯定也就可以由它的主人(那个小屁孩儿)去选择他喜欢的颜色、粗细、材质等等啦~~~~下面也列举部分paint常用方法如下:
void  setARGB(int a, int r, int g, int b)  设置Paint对象颜色,参数一为alpha透明通道

void  setAlpha(int a)  设置alpha不透明度,范围为0~255

void  setAntiAlias(boolean aa)  //是否抗锯齿

void  setColor(int color)  //设置颜色,这里Android内部定义的有Color类包含了一些常见颜色定义

void  setFakeBoldText(boolean fakeBoldText)  //设置伪粗体文本
  
void  setLinearText(boolean linearText)  //设置线性文本

PathEffect  setPathEffect(PathEffect effect)  //设置路径效果

Rasterizer  setRasterizer(Rasterizer rasterizer) //设置光栅化

Shader  setShader(Shader shader)  //设置阴影 

void  setTextAlign(Paint.Align align)  //设置文本对齐

void  setTextScaleX(float scaleX)  //设置文本缩放倍数,1.0f为原始

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

Typeface  setTypeface(Typeface typeface)  //设置字体,Typeface包含了字体的类型,粗细,还有倾斜、颜色等。

void  setUnderlineText(boolean underlineText)  //设置下划线

最后最后,再提醒一下哈,canvas和paint都可以在onraw中直接使用的哟~~~
 
 

 

  原出处:http://blog.csdn.net/listening_music/article/details/6859229

分享到:
评论

相关推荐

    canvas、paint绘图

    在Android开发中,Canvas和Paint是两个至关重要的类,它们为开发者提供了丰富的图形绘制功能,使得我们可以自由地在屏幕上绘制各种形状、线条、文本以及图片。这篇文章将深入探讨Canvas和Paint在Android中的应用,...

    绘图基础Canvas+Paint

    在Android开发中,Canvas和Paint是进行图形绘制的基础工具,它们是Android SDK提供的重要组件,用于在屏幕上创建和展示各种自定义图形。本教程将深入探讨Canvas和Paint的使用方法,帮助你掌握基本的绘图技能。 ...

    Android中使用Canvas和Paint绘制一个安卓机器人示例代码

    在Android开发中,Canvas和Paint是两个非常重要的图形绘制类,它们共同构成了Android图形系统的基础。Canvas用于在Bitmap上画图,而Paint则定义了图形的样式,如颜色、线宽、字体等。本示例将详细介绍如何使用这两个...

    自定义view(Paint和Canvas)

    本文将深入探讨自定义View中的关键组件——Paint和Canvas,以及它们如何协同工作以实现丰富的图形绘制。 首先,让我们来看一下`Paint`类。Paint是Android中用于控制图形绘制样式的核心对象。它包含了颜色、样式、...

    android利用Paint在Canvas上实现竖排写字

    本教程将详细讲解如何利用Paint和Canvas在Android应用中实现在竖直方向上写字。 1. **Canvas与Paint基础** - **Canvas**:Canvas是Android中的画布,提供了各种绘制方法,如drawRect(), drawText()等,让我们能够...

    Paint和Canvas使用总结

    在Android开发中,`Paint`和`Canvas`是两个非常重要的图形绘制类,它们共同协作在屏幕上绘制出丰富多彩的UI元素。本篇文章将对`Paint`和`Canvas`的使用进行详细总结,帮助开发者深入理解这两者的功能和用法。 首先...

    react-canvas-paint

    React画布油漆React图纸库安装npm install --save react-canvas-paint用法import React , { Component } from 'react'import ReactCanvasPaint from 'react-canvas-paint'import 'react-canvas-paint/dist/index.css...

    Android-实现在Kotlin中更方便使用canvas

    fun Canvas.drawRectSafe(rect: RectF, paint: Paint) { if (paint != null) { drawRect(rect, paint) } } ``` 在Kotlin中,我们还可以利用数据类和密封类来封装复杂的绘图逻辑。例如,定义一个表示形状的数据类...

    绘图基础Canvas+Path+Paint

    在Android开发中,Canvas、Path和Paint是进行图形绘制的核心组件,它们共同构成了丰富的图形绘制系统,使得开发者能够实现各种复杂的界面效果。本篇将详细探讨这三个关键元素及其相互作用。 Canvas是Android图形...

    android canvas\paint\path简单使用(自定义view必学)

    最近学到自定义view,也是涉及到了canvas、paint、path的使用,此内容比较简单。 此三者一般会在自定义view的onDraw()中用到: canvas:决定view的布局(位置,画布颜色,形状) paint:决定view的属性(颜色,字体...

    Android -自定义view-Paint和Canvas.rar

    本资源“Android -自定义view-Paint和Canvas.rar”着重讲解了如何利用Paint和Canvas进行自定义View的绘制。下面将详细介绍这两个关键概念及其在自定义View中的应用。 1. **Paint(画笔)**: Paint是Android图形库...

    android 画图 bitmap drawable canvas paint

    在Android平台上,绘制图形是一项基本任务,涉及到多个关键类,如Bitmap、Drawable和Canvas,以及Paint。这些类共同构成了Android图形系统的核心,使得开发者能够创建丰富的用户界面和自定义视图。 首先,Bitmap是...

    关于Paint,Canvas,Path的Demo

    这个Demo主要涉及了三个核心组件:Paint、Canvas和Path,它们是Android系统中进行2D图形绘制的基础。现在,让我们深入探讨这些知识点。 首先,`Paint`类是Android中的画笔对象,它定义了绘制时的颜色、样式、字体等...

    Android 自定义Paint画笔 canvas绘图例子.rar

    Android 自定义Paint画笔 canvas绘图例子,本例子中所用到的方法继承自android.view.View,是一个自定义View的范例,同时可学习画笔的定义:  Paint paint;//画笔  public MyView(Context context) {//构造器   ...

    android 画笔和Canvas介绍.

    使用文档中介绍了Canvas和Paint的方法介。使用方便,适合开发者

    Paint,Canvas 应用 Demo

    在Android开发中,`Paint`和`Canvas`是两个至关重要的图形绘制类,它们共同构成了Android图形绘制的基础。本文将详细解析这两个类的应用,并通过一个名为"Canvas&PaintDemo"的示例项目来深入理解其工作原理。 首先...

    Android 自定义画布canvas 实现绘制和清空画布功能

    本教程将深入探讨如何利用Canvas实现绘制和清空画布的功能。 首先,我们需要创建一个自定义View类,这个类将继承自Android的View或SurfaceView。在这个自定义View中,我们将重写`onDraw()`方法,这是绘制图形的主要...

    canvas-paint-tool:逼真的画布绘画工具

    总的来说,"canvas-paint-tool"是一个展示HTML5 Canvas强大功能的实例,它将JavaScript与Canvas API紧密结合,创造出一个富有创新和互动性的在线绘画平台。无论是初学者还是经验丰富的开发者,都能从中学习到如何...

    GuaGuaKa2-刮刮卡:1.简易的一个画板2.简易的刮出背景图功能3.刮刮卡的完整版.涉及知识点:1.Canvas、Paint、Path、Bitmap的使用2.Paint.se.zip

    刮刮卡:1....涉及知识点:1.Canvas、Paint、Path、Bitmap的使用2.Paint.setXferMode的使用3.自定义属性4.Bitmap.getPixles获得所有像素点。项目地址:https://github.com/scp504677840/GuaGuaKa 效果图:

    安卓绘图 canvas 绘图 平移缩放

    本示例重点探讨的是如何使用Canvas进行图形的平移和缩放操作,这对于创建动态效果或者自定义视图(View)尤其重要。 一、Canvas与Bitmap 在Android中,Canvas是用来在指定的Bitmap上进行绘图的。Bitmap是实际存储...

Global site tag (gtag.js) - Google Analytics