类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. 比较典型的带case的group by语句

    2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 2005-05-10 负 如果要生成下列结果 ...

  2. Nginx反向代理的工作方式

    如图所示: 当客户端发来HTTP请求时,Nginx并不会立刻转发到上游服务器,而是先把用户的请求(包括HTTP包体)完整地接收到Nginx所在服务器的硬盘或者内存中,然后再向上游服务器发起连接,把缓存 ...

  3. DS28E01芯片解密DS28E01-100单片机解密多少钱?

    DS28E01芯片解密DS28E01-100单片机解密多少钱? DS28E01-100将1024位EEPROM与符合ISO/IEC 10118-3安全散列算法(SHA-1)的质询响应安全认证结合在一起 ...

  4. Oracle两列字段替换和复制

  5. SSH 常用命令解析

    SSH 是什么 SSH(全 称 Secure Shell)是一种加密的网络协议.使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息.要使用 SSH,目标机器应该安装 S ...

  6. php实现数据库数据读取生成缓存文件

    有些时候我们希望减少对数据库的 查询来提高程序的性能,因为这些数据不是经常变更的,而是会在很长一段时间内都不会变化,因此,我们每连接一次数据库,都会把相应的结果用文件的形式保存 起来.比如对于一个商城 ...

  7. Jquery ajax 学习笔记

    本人的js & jq 一直是菜鸟级别,最近不忙就看了看ajax方面的知识,文中部分内容参考自这里&这里 之前一直用js写ajax现在基于jq实现方便多了~ $.get & $. ...

  8. 要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

    找到该文件所在文件夹,右键属性,安全选项卡,添加-aspnet用户,并设置其权限为完全控制.如果还是不行,就添加一个Everyone用户并赋予完全控制权限windows server 2008中IIS ...

  9. Android源码目录结构详解(转载)

    转自:http://blog.csdn.net/xiangjai/article/details/9012387 在学习Android的过程中,学习写应用还好,一开始不用管太多代码,直接调用函数就可以 ...

  10. Codeforces Round #353 (Div. 2)

    数学 A - Infinite Sequence 等差数列,公差是0的时候特判 #include <bits/stdc++.h> typedef long long ll; const i ...