`
yezhiqiu-love
  • 浏览: 169201 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中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

分享到:
评论

相关推荐

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

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

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

    在Android开发中,Canvas是用于在屏幕上绘制2D图形的核心组件。Kotlin作为一种现代、简洁的编程语言,已经成为Android开发...在项目"Kanvas-master"中,你可能找到更多关于如何在Kotlin中优化Canvas使用的示例和实践。

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

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

    自定义view(Paint和Canvas)

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

    canvas、paint绘图

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

    Android Canvas使用集合

    在Android开发中,Canvas是用于在屏幕上绘制图形的重要工具,它是Android Framework提供的核心绘图类。Canvas使用集合意味着我们可以利用它来绘制一系列图形、文本、图像等元素,从而实现自定义视图或控件。本篇文章...

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

    在Android开发中,自定义画布Canvas是实现图形绘制的核心工具。Canvas提供了丰富的API,允许开发者在屏幕上绘制各种形状、图像以及文字等。本教程将深入探讨如何利用Canvas实现绘制和清空画布的功能。 首先,我们...

    Android中Canvas绘图基础详解

    该代码是一个完整的Android工程,详细演示如了如何使用Android中的各种drawXXX方法,以及画笔Paint如何影响绘制的效果。 具体参见博文: http://blog.csdn.net/iispring/article/details/49770651

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

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

    android 使用canvas把矩形图片变成圆角矩形显示

    在Android开发中,有时我们需要将一个矩形的图片转换为圆角矩形显示,以...总的来说,通过自定义View并结合Canvas的绘图能力,我们可以轻松地将矩形图片转换为圆角矩形,为Android应用添加更多个性化和美观的设计元素。

    绘图基础Canvas+Paint

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

    Android 画布Canvas之连线动画Demo

    在这个"Android画布Canvas之连线动画Demo"中,我们将深入探讨如何利用Canvas实现动态的连线动画效果,包括控制动画速度、线条颜色和线宽。 首先,我们要理解Canvas的基本绘图操作。`Canvas`提供了如`drawLine()`、`...

    Android下使用Canvas画图

    本文将深入探讨Android中Canvas画图的相关知识点,帮助你理解和掌握其核心功能。 1. **Canvas的基本概念** - Canvas是Android系统提供的一个类,它提供了在二维画布上进行绘制的方法。 - 通常,我们会在一个...

    Android canvas drawBitmap方法详解及实例

    在Android开发中,Canvas是用于在屏幕上绘制图形和图像的核心组件。`drawBitmap()`方法是Canvas的一个关键函数,用于在Canvas上绘制Bitmap图像。本文将深入解析`drawBitmap()`方法的参数及其用法,并通过实例来说明...

    android canvas画人

    Canvas是Android的图形系统的一部分,允许开发者在内存中的Bitmap上进行各种图形操作,如线条、圆形、文字和位图的绘制。首先,我们需要创建一个Bitmap对象,然后获取Canvas实例,通常通过Bitmap的`createCanvas()`...

    android canvas 画曲线图 画三角形(多边形)

    本篇文章将详细讲解如何利用Canvas在Android中画曲线图和三角形(多边形),并结合示例代码帮助理解。 首先,我们要明白Canvas的基本用法。Canvas是Android中的一个类,它提供了在Bitmap上绘制图形的方法。通常,...

    android Canvas类介绍

    Canvas是Android系统中用于图形绘制的核心类,它在Android的视图系统中扮演着至关重要的角色。通过Canvas,开发者可以实现在屏幕上画出各种复杂的图形、文字、图像等元素。Canvas与Bitmap紧密关联,Bitmap是实际存储...

    Paint和Canvas使用总结

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

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

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

    android 画图 bitmap drawable canvas paint

    Android的图形绘制是一个灵活且强大的系统,允许开发者通过组合使用Bitmap、Drawable、Canvas和Paint来创建复杂且个性化的视觉效果。理解并熟练掌握这些类的用法对于进行Android应用开发至关重要,尤其是在需要...

Global site tag (gtag.js) - Google Analytics