类path是一个封装的几何学路径包括直线,二次曲线,三次曲线。它可以通过函数canvas.drawPath(path, paint)画出来,可以通过填充方式或者画线方式(由paint的style决定),也可以设置cliping或者把text画在path上边

Path.Direction

用来指定添加到path中的模型(比如方形,椭圆)的闭合方向,有两个值

CCW 表示逆时针,CW 表示顺时针

Path.FillType

Path会被填充的方法,有4个值

EVEN_ODD ,INVERSE_EVEN_ODD ,INVERSE_WINDING,WINDING

public Path ()

创建一个空路径

public Path (Path src)

创建一个路径,将src里的内容都复制到新路径中

public void addArc (RectF oval, float startAngle, float sweepAngle)

将一段弧线加入到path中作为一个新的轮廓,该弧线由oval,startAngle,sweepAngle三者决定

public void addCircle (float x, float y, float radius, Path.Direction dir)

增加一个闭合的圆形到path中,dir表示闭合的方向

public void addOval (RectF oval, Path.Direction dir)

增加一个闭合的矩形到path中

public void addPath (Path src, float dx, float dy)

将src平移dx,dy后添加到path当中

public void addPath (Path src)

将src添加到path当中

public void addPath (Path src, Matrix matrix)

将src通过matrix变换后添加到Path当中

public void addRect (float left, float top, float right, float bottom, Path.Direction dir)

增加一个闭合的矩形到path当中

public void addRect (RectF rect, Path.Direction dir)

增加一个闭合的矩形到path当中

public void addRoundRect (RectF rect, float[] radii, Path.Direction dir)

增加一个闭合的圆角矩形到path当中,radii表示各个角的半径点x,y,依次是左上角,右上角,右下角,左下角

public void addRoundRect (RectF rect, float rx, float ry, Path.Direction dir)

增加一个闭合的圆角矩形到path当中,rx,ry表示各个角的半径点

public void arcTo (RectF oval, float startAngle, float sweepAngle)

将一段圆弧连接到path当中,如果path的最后一个点和圆弧的第一个点不一样,那么就会先通过lineTo()将这两个点连接起来,然后再连接圆弧。当然,如果path是空的,那就会调用moveTo()把path的第一个点移到圆弧的第一个点上来

public void arcTo (RectF oval, float startAngle, float sweepAngle, boolean forceMoveTo)

同上,sweepAngle的值在应用的过程中会到360求模,forceMoveTo如果是true,那么圆弧会一直显示一个新的轮廓

public void close ()

关闭当前轮廓,如果当前点和该轮廓的第一个点不一样,会自动的用一条直接连接该两点

public void computeBounds (RectF bounds, boolean exact)

计算path中控制的点的边界,将结果写入bounds中,如果Path中只有0或者1个点,那么bounds会返回(0,0,0,0)的值,exact这个变量没用

public void cubicTo (float x1, float y1, float x2, float y2, float x3, float y3)

从最后一个点开始增加一段贝塞尔曲线到path当中,接近(x1,y1),(x2,y2),同时在(x3,y3)中结束,如果这个轮廓没有调用过moveTo(),那么将会以(0,0)作为起点

public Path.FillType getFillType ()

获取path的填充方式,这定义了在内部的计算方法,默认值为WINDING

public void incReserve (int extraPtCount)

提示path将会增加extraPtCount个点,这能使path有效率的分配它的存储空间

public boolean isEmpty ()

查询path是否为空(不包括任何直线,曲线)

public boolean isInverseFillType ()

判断filltype是否为INVERSE中的一种

public boolean isRect (RectF rect)

如果path指定了一个矩形,那么返回true,并且rect将会存储path的边界值,如果没有指定一个矩形,返回false,并且忽略掉rect

public void lineTo (float x, float y)

将path的最后一个点连接点(x,y),如果path还没调用moveTo的话,将(0,0)点连接到(x,y)

public void moveTo (float x, float y)

设置下一个轮廓的第一个点

public void offset (float dx, float dy, Path dst)

将path平移dx,dy之后,将结果写到dst中,如果dst为null,那么改变后的结果直接写在当前path中

public void offset (float dx, float dy)

同上,只不过就是dst=null的情形

public void quadTo (float x1, float y1, float x2, float y2)

增加一条二次的贝塞尔曲线到path的最后一个点,接近(x1,y1),在(x2,y2)点结束。如果path没有调用moveTo来确定第一个点,那第一个点设置为(0,0)

public void rCubicTo (float x1, float y1, float x2, float y2, float x3, float y3)

跟cubicTo相同,但是参数里的这些点坐标会被考虑当前轮廓的相对位置

public void rLineTo (float dx, float dy)

public void rMoveTo (float dx, float dy)

public void rQuadTo (float dx1, float dy1, float dx2, float dy2)

跟去掉字母r的相对应的函数一样,但是都会考虑提供的点跟轮廓的相对位置

public void reset ()

清空Path的任何直线和曲线,让它变成空,但是不会改变filltype

public void rewind ()

rewind当前path,清除掉所有直线,曲线,但是保留它内部的数据结构,以便更好的重新使用

public void set (Path src)

用src的值替代当前path的值

public void setFillType (Path.FillType ft)

设置当前path的filltype

public void setLastPoint (float dx, float dy)

设置当前path的最后一个点

public void toggleInverseFillType ()

套住filltype的inverse状态

public void transform (Matrix matrix, Path dst)

将path进行matrix变化后,将结果保存到dst当中,如果dst=null,将结果保存到当前path当中

public void transform (Matrix matrix)

同上,相当于dst=null情形

android.graphic.Path的更多相关文章

  1. Android中Path类的lineTo方法和quadTo方法画线的区别

    转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...

  2. android 利用Path.cubicTo 画 贝塞尔曲线

    Path.cubicTo void android.graphics.Path.cubicTo(float x1, float y1, float x2, float y2, float x3, fl ...

  3. MAC上使用maven打android的包,报错:No Android SDK path could be found. 解决办法

    对android工程运行mvn compile出现如下信息: No Android SDK path could be found. You may configure it in the pom u ...

  4. 使用android.graphics.Path类自绘制PopupWindow背景

    PopupWindow简单介绍 PopupWindow是悬浮在当前activity上的一个容器,用它能够展示随意的内容. PopupWindow跟位置有关的API有以下几个: showAsDropDo ...

  5. Android使用Path实现仿最新淘宝轮播广告底部弧形有锯齿的问题以及解决办法

    在前面一篇博文<Android高仿京东淘宝自动无限循环轮播控件的实现思路和过程>中已经基本介绍了实现轮播广告的基本思路和过程,但是仔细观察淘宝的轮播广告栏,发现在轮播广告栏的底部有个小小的 ...

  6. Android自定义控件-Path之贝赛尔曲线和手势轨迹、水波纹效果

    从这篇开始,我将延续androidGraphics系列文章把图片相关的知识给大家讲完,这一篇先稍微进阶一下,给大家把<android Graphics(二):路径及文字>略去的quadTo ...

  7. Android vector Path Data画图详解

    SVG是一种矢量图格式,是Scalable Vector Graphics三个单词的首字母缩写.在xml文件中的标签是,画出的图形可以像一般的图片资源使用,例子如下: <vector xmlns ...

  8. android graphic(15)—fence

    为何须要fence fence怎样使用 软件实现的opengl 硬件实现的opengl 上层使用canvas画图 上层使用opengl画图 下层合成 updateTexImage doComposeS ...

  9. 开源项目 apk cfg and android app path profiling

    暑假里面完毕的一个小项目,limitation还是挺多的. 期待未来有更大的motivation 去完好它.通过此次的项目设计,对于smali的语法更加了解了,对于进一步学习android app的安 ...

随机推荐

  1. 【tornado】系列项目(二)基于领域驱动模型的区域后台管理+前端easyui实现

    本项目是一个系列项目,最终的目的是开发出一个类似京东商城的网站.本文主要介绍后台管理中的区域管理,以及前端基于easyui插件的使用.本次增删改查因数据量少,因此采用模态对话框方式进行,关于数据量大采 ...

  2. 数据库密码爆破HexorBase

    数据库密码爆破HexorBase   数据库服务是服务器上最常见的一类服务.由于数据库保存大量的敏感信息,所以它的安全非常重要.测试数据库服务安全的重要方式,就是检查口令的强壮度.   Kali Li ...

  3. iOS ReactiveCocoa简单使用笔记

    涉及对象: 两个输入框,一个按钮. 代码功能: 随时监测输入框内容的长度变化,并在输入内容不符合预设要求时,立即改变输入框背景色. 在两个输入框的内容都符合预设要求时,按钮才可用. RACSignal ...

  4. Leetcode Anagrams

    Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...

  5. JDBC连接数据库(数据源的方式)

    在tomcat安装目录下的context.xml文件中配置DataSource <Resource name="jdbc/news"(JNDI的名字,news是数据库的实例名 ...

  6. SQL中对于两个不同的表中的属性取差集except运算

    SQL中对两个集合取差集运算,使用except关键字,语法格式如下: SELECT column_name(s) FROM table_name1 EXCEPT SELECT column_name( ...

  7. ubuntu12.04下root启动wireshark报错解决办法

    在ubuntu11.10以后版本中发现,安装wireshark后用root权限启动,弹出如下错误: Running as user “root” and group “root”. This coul ...

  8. &与&&,|与||

    http://bokeid.blog.163.com/blog/static/93102786201181710259178/ &&:逻辑运算符,连接两个或多个表达式,结果为TRUE或 ...

  9. bzoj2243: [SDOI2011]染色--线段树+树链剖分

    此题代码量较大..但是打起来很爽 原本不用lca做一直wa不知道为什么.. 后来改lca重打了一遍= =结果一遍就AC了orz 题目比较裸,也挺容易打,主要是因为思路可以比较清晰 另:加读入优化比没加 ...

  10. JavaScript、全选反选-课堂笔记

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...