Canvas 画布 paint 画笔 Path 路径
Path代表任意多条直线连接而成的任意图形,当Canvas根据Path绘制时,它可以绘制出任意的形状

使用 Matrix 控制图像或组件变换步骤:
①获取 Matrix对象,该 Matrix对象既可创建,也可直接获取其他对象内封装的 Matrix;
②调用 Matrix的方法进行平移、旋转、缩放、倾斜等;
③将程序对 Matrix所做的变换应用到指定图像或组件。

colorMatrix : (4x5矩阵) 用于处理颜色
matrix (矩阵) : 处理图形(3x3)
Matrix matrix = new Matrix();
canvas.drawBitmap(bitmap, matrix, paint);
matrix.setTranslate(100, 1000);
canvas.drawBitmap(bitmap, matrix, paint);

matrix.preTranslate(100,100);
matrix.preRotate(20,100,100);
canvas.drawBitmap(bitmap, matrix, paint);

Android为Bitmap提供了内存回收方法:
void recycle():强制回收Bitmap对象。
用于判断Bitmap 对象是否被回收的方法:
boolean isRecycle();

BitmapFactory工具类:通过对资源文件的解析获取Bitmap对象
eg:decodeResource(Resource res,int id) decodeByteArray(byte[] data, int offset,int length) etc.

绘图应该继承View组件,并重写它的onDraw(Canvas canvas)方法

drawCircle:canvas.drawCircle(cx, cy, radius, paint);x、y代表坐标、radius是半径、paint是画笔,就是画图的颜色;
实心(paint.setStyle(Paint.Style.FILL)) 空心(paint.setStyle(Paint.Style.STROKE);
正方形 drawRect:canvas.drawRect(left, top, right, bottom, paint)
left:是矩形距离左边的X轴 top:是矩形距离上边的Y轴 right:是矩形距离右边的X轴 bottom:是矩形距离下边的Y轴
圆角矩形:drawRoundRect(RectF rect,float rx,float ry,Paint paint);
eg:RectF rectf=new RectF(40,20,80,40); canvas.drawRonudRect(rectf,6,6,paint);
左上角坐标(left,top)和右下角坐标(right,bottom)
RectF re = new Rect(left, top, right, bottom); 椭圆:canvas.drawOval(re,paint);
drawLine(float startX,float startY,float stopX,float stopY, paint);
绘制多条线:drawLine(float[] pts,Paint paint); eg:drawLine(new float[]{10,10,30,10,30,10,15,30,15,30,10,10},paint);
drawPoints(float x,float y,Paint paint)
drawText(String Text,float x,float y,Paint paint); 在画布的指定位置绘制文字
drawPosText(String text,float[] pos,Paint paint);使用该方法绘制字符串时,需要为每一个字符指定一个位置
text用于指定要绘制的文字,pos用于指定每一个字的位置,paint用于指定使用的画笔

设置画笔:
Paint paint=new Paint();//创建一个采用默认设置的画笔
paint.setAntiAlias(true);//使用抗锯齿的功能
paint.setColor(Color.RED);//设置颜色为红色
paint.setStrokeWidth(2);//笔触的宽度为2像素
paint.setStyle(Style.STROKE);//填充样式为描边(实心是Style.FILL)

使用SurfaceView实现动画 :
SurfaceView一般会与SurfaceHolder结合使用, SurfaceHolder用于向与之关联的SurfaceView上绘图,调用SurfaceView的getHolder()方法即可获取SurfaceView关联的 SurfaceHolder。 SurfaceHolder提供了如下方法来获取Canvas对象:
Canvas lockCanvas():锁定整个 SurfaceView对象,获取其上的Canvas。
Canvas lockCanvas(Rect dirty):锁定 SurfaceView上Rect划分的区域,获取其上的Canvas。
获取指定了SurfaceView上的Canvas之后,程序就可以调用Canvas绘图,绘图完成后通过如下方法来释放绘图,提交所绘制的图形:
unlockCanvasAndPost(canvas);
当调用SurfaceHolder的 unlockCanvasAndPost方法之后,该方法之前所绘制的图形还在缓冲中,下一次的lockCanvas()方法锁定的区域可能会“遮挡”它。

android 图形图像的更多相关文章

  1. Android图形基础

    Android图形基础 Android在其android.graphics包中提供了完整的本机二维图像库. Color类,代表颜色,是用4个数字表示的,透明度.红色.绿色和蓝色(Alpha.Red.G ...

  2. android图形基础知识

    Android核心分析(23)-----Andoird GDI之基本原理及其总体框架 2010-06-13 22:49 18223人阅读 评论(18) 收藏 举报 AndroidGDI基本框架 在An ...

  3. 超全面的.NET GDI+图形图像编程教程

    本篇主题内容是.NET GDI+图形图像编程系列的教程,不要被这个滚动条吓到,为了查找方便,我没有分开写,上面加了目录了,而且很多都是源码和图片~ (*^_^*) 本人也为了学习深刻,另一方面也是为了 ...

  4. C#_GDI+详细教程(图形图像编程基础)

    第7章  C#图形图像编程基础 本章主要介绍使用C#进行图形图像编程基础,其中包括GDI+绘图基础.C#图像处理基础以及简单的图像处理技术. 7.1  GDI+绘图基础 编写图形程序时需要使用GDI( ...

  5. 8 个优秀的 Linux 图形图像及色彩工具

    8 个优秀的 Linux 图形图像及色彩工具 1. 硬件色彩分析器LPROF LPROF 是一个用于创建设备兼容,如相机.扫描仪.显示器的ICC兼容型材的颜色分析器.这些配置提供跨设备的色彩一致性.他 ...

  6. FastStone Capture(FSCapture) 注册码 _图形图像_软件教程_脚本之家

    FastStone Capture(FSCapture) 注册码 _图形图像_软件教程_脚本之家 FastStone Capture 注册码 序列号: name/用户名:TEAM JiOO key/注 ...

  7. DSAPI 图形图像篇(上)

    彩色文字对象 基于一些特殊需求,本人开发了彩色文字对象,该功能通过类似html代码的方式指示文本,并输出图像. 我们还是先来看一张图像. 这不是文本,是通过指定文本代码输出的图像.我们来看一下实现代码 ...

  8. DSAPI多功能组件编程应用-图形图像篇(中)

    [DSAPI.DLL下载地址]   说到计算机上使用代码来处理各种图像特效,是一份太有挑战性的工作.以下涉及的所有图像效果均不是从网上复制的源码,而是本人试验数次并编写的,所以原理上会和网上的有所不同 ...

  9. Dreamweaver杀手!Illustrator终结者?Flash的末日?图形图像设计程序之网页版

    Dreamweaver杀手!Illustrator终结者?Flash的末日?图形图像设计程序之网页版 阅读:  评论:  作者:Rybby  日期:  来源:rybby.com Adobe 家的 Il ...

随机推荐

  1. # 2018-2019-20175302实验一《Java开发环境的熟悉》实验报告

    2018-2019-20175302实验一<Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java ...

  2. 【python深入】map/reduce/lambda 内置函数的使用

    python中的内置函数里面,有map和reduce两个方法,这两个方法可以非常好的去做一些事情,但是之前都没有用过,下面是关于这两个方法的介绍: 一.map相关 map()会根据提供的函数对指定的序 ...

  3. jsp2

    jsp:实现了静态html中,插入了动态的代码 servlet:动态代码中,插入静态html (jsp代码) <%@ page language="java" content ...

  4. Unity 3D 如何修改新建脚本中的 C# 默认创建的 Script 脚本格式

    首先在Unity的安装路径下找到 Unity5\Editor\Data\Resources\ScriptTemplates路径的(81-C# Script-NewBehaviourScript.cs. ...

  5. CentOS7 修改静态IP地址

    Ip配置文件在/etc/sysconfig/network-scripts文件夹下,查找该文件的方法为: [root@localhost ~]# ll /etc/sysconfig/network-s ...

  6. linux下搭建Jenkins环境

    前提:Tomcat.jdk已安装并配置成功,具体安装和配置可参考我的其他随笔,在此不再详述 1.官网下载Jenkins最新war包,jenkins.war 2.进入Tomcat安装目录,创建Jenki ...

  7. angular使用sass的scss语法

    一.现象 为了简写样式 二.解决 1.安装sass ,利用npm 安装(npm工具如果没有,请先自行安装好) (1).npm install node-sass --save-dev (2).npm ...

  8. spring boot生成的war包运行时出现java.lang.NullPointerException: null

    最近写了一个数据库同步的程序,见之前的博客,没有用到spring框架来集成,用的时纯Java代码.然后,项目经理要我把程序合到spring boot框架中,因为涉及到多数据源,时间又比较紧,同意我直接 ...

  9. SQL Server数据库的兼容级别

    SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行M ...

  10. Mad Libs游戏

    一. 简单的输入输出 输入代码 name1=input('请输入姓名:') name2=input('请输入一个句子:') name3=input('请输入一个地点:') name4=input('请 ...