Canvas 方法详解

1:translate(float dx, float dy)

/**** 移动canvas的原点到(dx,dy),默认为(0,0) */
public void translate(float dx, float dy);
canvas.drawRect(0,0,300,200,rectPaint);
canvas.translate(300,200);
canvas.drawRect(0,0,400,400,rectPaint1);

图:

2:clipRect方法

该方法 clipRect(float left, float top, float right, float bottom, Op op)不支持硬件加速,故application加入以下代码。

<application android:hardwareAccelerated="false">
 public boolean clipRect(float left, float top, float right, float bottom, Op op) ;
public boolean clipRect(float left, float top, float right, float bottom);

先看Op的几个属性:

Region.Op.REPLACE  //后者的范围将全部进行显示,并覆盖交集

Op.DIFFERENCE; // 显示前者与后者差集

Op.INTERSECT; // 显示交集部分

Op.REVERSE_DIFFERENCE  // 显示后者与前者差集

Op.UNION; // 并集都会显示

Op.XOR  // 显示部分为全集减去交集部分

 canvas.clipRect(0,0,500,500);

 canvas.drawColor(Color.RED);

 canvas.clipRect(0, 0, 200, 200);

 canvas.clipRect(100, 100, 300, 300,
Region.Op.REPLACE); canvas.clipRect(0,0,250,250);
canvas.drawColor(Color.GRAY);

replace:

union:

XOR  :

3:drawBitmap方法

 Bitmap bitmap1= BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher_round);

 canvas.drawBitmap(bitmap1, 220, 60, rectPaint);//坐标指的是左上角的位置

4:drawpoints方法

public void drawPoint(float x, float y, Paint paint);
public void drawPoints(float[] pts, int offset, int count, Paint paint) ; public void drawPoints(float[] pts, Paint paint) ;

参数pts ,offset(开始点),count()数目

 float[] pts=new float[]{100,100,200,200,67f,56f,78f,78f,123f,145f,231f,342f};

 canvas.drawPoints(pts,0,4,rectPaint);

绘制效果就是2个点:(100,100),(200,200)

Paint、Canvas.1的更多相关文章

  1. Android Paint、Canvas、Matrix使用讲解(一、Paint)

    http://blog.csdn.net/tianjian4592/article/details/44336949 好了,前面主要讲了Animation,Animator 的使用,以及桌面火箭效果和 ...

  2. Paint、Canvas、Matrix使用解说(一、Paint)

    username=tianjian4592">我正在參加 CSDN 2015博客之星评选 感恩分享活动,假设认为文章还不错,请投个票鼓舞下吧:http://vote.blog.csdn ...

  3. Paint、Canvas

    1.Canvas类 public class Canvas { public static final int ALL_SAVE_FLAG = 31; /** @deprecated */ @Depr ...

  4. Paint、Canvas.2

    1:使用Cavans画个简单图形 2:过程 2.1:绘制最外部的圆 /*** 初始化 paint */ Paint paint; paint = new Paint(); paint.setColor ...

  5. 安卓自定义控件(一)Canvas、Paint、Shader、Xfermode

    关于自定义控件,之前就写过一篇自定义控件,上图下字的Button,图片任意指定大小,但是使用效果还是让人感觉不幸福,这次索性彻彻底底地对自定义控件做一次彻彻底底的总结. 我会花4篇博客来介绍自定义控件 ...

  6. Android学习记录:Paint,Canvas和Bitmap

    在Java中,利用过双缓冲技术,先将画笔画在内存上,再转化为图片,调出来. 当画的东西过多造成处理不过来时,双缓冲技术将防止闪屏. 在Paint方法下,我们这样写: BufferedImage tmp ...

  7. 环形进度条的实现方法总结和动态时钟绘制(CSS3、SVG、Canvas)

    缘由: 在某一个游戏公司的笔试中,最后一道大题是,“用CSS3实现根据动态显示时间和环形进度[效果如下图所示],且每个圆环的颜色不一样,不需要考虑IE6~8的兼容性”.当时第一想法是用SVG,因为SV ...

  8. [Web 前端] VML、SVG、Canvas简介

    1.VML: VML的全称是Vector Markup Language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途,VML只是被IE支持. ...

  9. VML、SVG、Canvas简介

    1.VML: VML的全称是Vector Markup Language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途,VML只是被IE支持. ...

随机推荐

  1. [POI2005]SKA-Piggy Banks tarjan 水题

    Code: #include<bits/stdc++.h> #define maxn 1000002 using namespace std; void setIO(string s) { ...

  2. Django MVC与MTV概念 Ajax、分页实现

     MVC与MTV概念 MTV与MVC(了解)        MTV模型(django):            M:模型层(models.py)            T:templates      ...

  3. [Ynoi2016]掉进兔子洞 题解

    题面传送门:https://www.luogu.org/problemnew/show/P4688 (温馨提示,请直接翻至题目描述部分) 1e5的数据范围,以及对区间每个权值出现次数取min此类主席树 ...

  4. html第八节课

    导航 1.首先在<head>里面引用一个JQUERY的文件以用来制作鼠标点击动画效果(从网站上下载即可) 1 <script language="javascript&qu ...

  5. Java设计模式之 — 组合(Composite)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9153753 听说你们公司最近新推出了一款电子书阅读应用,市场反应很不错,应用里还有 ...

  6. Solr与Elasticsearch比较

    Solr优点1.Solr有一个更大.更成熟的用户.开发和贡献者社区.2.支持添加多种格式的索引,如:HTML.PDF.微软 Office 系列软件格式以及 JSON.XML.CSV 等纯文本格式.3. ...

  7. 洛谷 P1535 游荡的奶牛

    P1535 游荡的奶牛 题目描述 Searching for the very best grass, the cows are travelling about the pasture which ...

  8. Python之Mysql及SQLAlchemy操作总结

    一.Mysql命令总结 1.创建库 create database test1; 2.授权一个用户 grant all privileges on *.* to 'feng'@'%' identifi ...

  9. HDU 3987 && DINIC

    很容易发现是网络流的题目,但最少边怎么求呢?初时想不到,但画图后忽然发现可以这样: 求一次网络流最小割后,把满流的边置1,不满流的置INF.再求一次最大流即可. 为什么呢? 是否会存在一些边当前不满流 ...

  10. HDU 1242

    简单题 #include <iostream> #include <cstdio> #include <queue> using namespace std; ; ...