概述

Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0

大部分2D使用的api都在android.graphicsandroid.graphics.drawable包中。他们提供了图形处理相关的: Canvas、ColorFilter、Point(点)和RetcF(矩形)等,还有一些动画相关的:AnimationDrawable、 BitmapDrawable和TransitionDrawable等。以图形处理来说,我们最常用到的就是在一个View上画一些图片、形状或者自定义的文本内容,这里我们都是使用Canvas来实现的。你可以获取View中的Canvas对象,绘制一些自定义形状,然后调用View. invalidate方法让View重新刷新,然后绘制一个新的形状,这样达到2D动画效果。

Canvas:画布,用来直接在View上绘制诸如矩形,圆形,文字,位图等图形。
它提供了各种API:

填充:

public void drawARGB(int a, int r, int g, int b)  public void drawColor(int color)  public void drawRGB(int r, int g, int b)  public void drawColor(int color, PorterDuff.Mode mode)

因为Canvas内部维持了一个mutable Bitmap,所以,它可以使用这些颜色去填充整个Bitmap。并且在API中提到(restricted to the current clip)受限制于clip的范围

绘制几何图像
canvas.drawArc (扇形)

canvas.drawCircle(圆)

canvas.drawOval(椭圆)

canvas.drawLine(线)

canvas.drawPoint(点)

canvas.drawRect(矩形)

canvas.drawRoundRect(圆角矩形)

canvas.drawVertices(顶点)

cnavas.drawPath(路径)

同时受限于clip和matrix

绘制图片

canvas.drawBitmap (位图)canvas.drawPicture (图片)同时受限于clipmatrix

文本
canvas.drawText

上面列举的是Canvas所能绘制的基本内容,在实际使用中,可以使用各种过滤或者过度模式,或者其他手段,来达到绘制各种效果。

过渡模式:

Xfermode,AvoidXfermode,PixelXorXfermode,PorterDuffXfermode

PorterDuff

过滤

1、rgb过滤 ColorFilter ,ColorMatrixFilter,PorterDuffColorFilter,LightingColorFilter,PorterDuffColorFilter

2、alpha过滤 MaskFilter,BlurMaskFilter,EmbossMaskFilter

3、DrawFilter,PaintFlagsDrawFilter

变换

Matrix,Camera,ColorMatrix

颜色

Color

渐变

Shader

BitmapShader,ComposeShader,LinearGradient,RadialGradient,SweepGradient

Canvas的变换
如果只是那些简单的draw…方法,那么canvas的功能就太单调了。Canvas还提供了一系列位置转换的方法:rorate、scale、translate、skew(扭曲)等。

另外还常用的两个方法是:

  • save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。
  • restore:用来恢复Canvas之前保存的状态。防止save后对Canvas执行的操作对后续的绘制有影响。save和restore要配对使用(restore可以比save少,但不能多),如果restore调用次数比save多,会引发Error。

Paint:画笔,作用于画布上,用来设置我们绘制图案的一些参数,如线条宽度(粗细),颜色等。常用的设置有:

setetAntiAlias: 设置画笔的锯齿效果。

setColor: 设置颜色

setARGB: 设置的ARGB色彩值。

setAlpha: 设置Alpha值

setTextSize: 设置字体尺寸。

setStyle: 设置画笔风格,空心或者实心。

setStrokeWidth: 设置空心的边框宽度。

setShader:设置阴影效果

setTextSkewX:设置文字倾斜度

Color:颜色类,主要是提供画笔的颜色等。可以定义在res/values/colors.xml中,也可以直接用系统提供的颜色值,更可通知Color.parseColor()来设置颜色。常用的系统颜色值如:

Color.BLACK;
Color.WHITE;
Color.BLUE;
Color.RED;
Color.YELLOW……

更多相关文章

  1. Android学习笔记16:Button控件图文混排效果的实现
  2. 【Android学习笔记】LinearLayout嵌套RecycleView后无法点击,onCl
  3. android 将自己的APP 设置为开机启动,不闪桌面
  4. Android(安卓)Material Design系列之CollapsingToolbarLayout
  5. Android自定义View(五)Canvas的常用方法
  6. android ViewPagerIndicator使用心得
  7. 将类似“¥1.5元”的文本中数字标红
  8. Android优化adapter及SparseArray介绍
  9. Android之BaseAdapter的使用

随机推荐

  1. android webview httpdefaultclient cook
  2. 欢迎使用CSDN-markdown编辑器
  3. android开发学习资料
  4. Android ProgressBar的使用
  5. android 自定义 checkbox
  6. Install NDK in Eclipse/Android Studio
  7. android通讯录解析源码
  8. Android实现推送方式解决方案
  9. Android中第五大组件详解
  10. 防止事件导致的oncreate的多次调用