Android Paint API
Luckie stone
Android应用开发。
展开
-
穿过已知点画平滑曲线(3次贝塞尔曲线)
首先,我们计算出多边形所有边线的中点,Ai。然后连接起相邻边中点,得到很多线段,记为 Ci 。并用图记的方法计算出 Bi 点。最后一步,只需要简单地将 Ci 进行平移,平移的路径就是每条线段上 Bi 到对应顶点的路径。就这样,我们计算出了贝塞尔曲线的控制点,平滑的结果看起来也很棒。这里还可以做一点小小的改进,因为我们已经得到了一条决定控制点的直线,所以,我们可以根据需要,使控制点在这条直线上移动,这样可以改变插值曲线 的状态。我使用了一个与控制点和顶点初始距离相关的系数 K ,用来沿原创 2020-10-01 07:40:13 · 1315 阅读 · 0 评论 -
PorterDuffXferMode不正确的真正原因
使用PorterDuffXfermode在Canvas上画图形,得到的显示部分如上图,但是其余部分不透明的原因:没有关闭硬件加速setLayerType(View.LAYER_TYPE_SOFTWARE, null);原创 2020-05-29 06:54:43 · 285 阅读 · 0 评论 -
Paint API之—— MaskFilter(面具)
Paint方法中有这样一个方法:setMaskFilter(MaskFilter maskfilter):设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等!而我们一般不会直接去用这个MaskFilter,而是使用它的两个子类:BlurMaskFilter:指定了一个模糊的样式和半径来处理Paint的边缘。EmbossMaskFilter:指定...转载 2018-06-20 05:44:10 · 313 阅读 · 0 评论 -
绘图类实战示例
本节引言:前两节我们学了Bitmap和一些基本的绘图API的属性以及常用的方法,但心里总觉得有点不踏实,总得写点什么加深下映像是吧,嗯,本节我们就来写两个简单的例子:1.简单画图板的实现2.帮美女擦衣服的简单实现嘿嘿,第二个例子是小猪刚学安卓写的一个小Demo~嘿嘿~开始本节内容~1.实战示例1:简单画图板的实现:这个相信大家都不陌生,很多手机都会自带一个给用...转载 2018-06-19 05:55:10 · 228 阅读 · 0 评论 -
三个绘图工具类详解
本节引言:上两小节我们学习了Drawable以及Bitmap,都是加载好图片的,而本节我们要学习的绘图相关的一些API,他们分别是Canvas(画布),Paint(画笔),Path(路径)!本节非常重要,同时也是我们自定义View的基础哦~好的,话不多说开始本节内容~官方API文档:Canvas;Paint;Path;1.相关方法详解1)Paint(画笔):就是画...转载 2018-06-19 05:55:02 · 610 阅读 · 0 评论 -
Canvas API详解(Part 3)Matrix和drawBitmapMash
本节引言:在Canvas的API文档中,我们看到这样一个方法:drawBitmap(Bitmap bitmap,Matrixmatrix, Paint paint)这个Matrix可是有大文章的,前面我们在学Paint的API中的ColorFilter中曾讲过ColorMatrix 颜色矩阵,一个4 * 5 的矩阵,我们可以通过修改矩阵值来修改色调,饱和度等! 而今天讲的这个Matr...转载 2018-06-21 06:17:57 · 399 阅读 · 0 评论 -
Canvas API详解(Part 2)剪切方法合集
本节引言:本节继续带来Android绘图系列详解之Canvas API详解(Part 2),今天要讲解的是Canvas 中的ClipXxx方法族!我们可以看到文档中给我们提供的Clip方法有三种类型:clipPath( ),clipRect( ),clipRegion( );通过Path,Rect,Region的不同组合,几乎可以支持任意形状的裁剪区域!Path:可以是开放或闭合的...转载 2018-06-21 06:17:45 · 506 阅读 · 0 评论 -
Canvas API详解(Part 1)
本节引言:前面我们花了13小节详细地讲解了Android中Paint类大部分常用的API,本节开始我们来讲解 Canvas(画板)的一些常用API,我们在8.3.1 三个绘图工具类详解 中已经列出了我们可供调用的一些方法,我们分下类: drawXxx方法族:以一定的坐标值在当前画图区域画图,另外图层会叠加, 即后面绘画的图层会覆盖前面绘画的图层。 clipXXX方法族:在...转载 2018-06-21 06:17:37 · 406 阅读 · 0 评论 -
android Canvas清屏只需三句话
public void drawLine(Point p1, Point p2, Point p3) { Canvas canvas = sh.lockCanvas(); canvas.drawColor(Color.TRANSPARENT); Paint p = new Paint(); ...原创 2018-04-03 14:22:11 · 1067 阅读 · 0 评论 -
Paint API之—— Xfermode与PorterDuff详解(一)
本节引言:不知道标题这两个玩意你熟不熟悉啦,如果自己实现过圆角或者圆形图片,相信对这两个名词并不模式,一时半伙没想起来?没关系,下面这个图你可曾见过?嗯,说回来,这图相信大部分朋友都见过吧,没见过也没关系,本节我们带大家来一点点的学习这个东西~,看回我们前面的Android基础入门教程——8.3.1 三个绘图工具类详解setXfermode(Xfermode xfermode...转载 2018-06-20 05:44:24 · 163 阅读 · 0 评论 -
Paint API之—— Xfermode与PorterDuff详解(二)
本节引言:上一节,我们学习了Xfermode两个已经过世(过时)的儿子:AvoidXfermode,PixelXorXfermode, 虽然说有点用,但是终归是被淘汰的了,本节我们来学习Xfermode还健在的三儿子:PorterDuffXfermode;先祭上官方API文档:PorterDuffXfermode!文档内容很少,我们可以看到他的构造方法:参数只有一个:Porte...转载 2018-06-20 05:44:32 · 198 阅读 · 0 评论 -
Paint API之—— Xfermode与PorterDuff详解(三)
本节引言:上一节,我们学习了Xfermode中的三儿子:PorterDuffXfermode构造方法中的为一个参数:PorterDuff.Mode,我们在观看了16种图片混排模式后,又自己写代码来验证了一下文档中 18种不同的混排模式,18种是新增了ADD和OVERLAY两种模式!当然,仅仅验证知道是不够的, 本节我们来写个例子,帮助我们熟悉下实际当中我们如何去使用PorterDuff.M...转载 2018-06-20 05:44:38 · 191 阅读 · 0 评论 -
Paint几个枚举-常量值以及ShadowLayer阴影效果
本节引言:在Android基础入门教程——8.3.1 三个绘图工具类详解Paint的方法参数那里我们就接触到 了这样几个东西:Paint.Style,Paint.Cap,Paint.Join等,这些都是Paint中的一些枚举值,相关 方法我们可以通过设置这些枚举值来设置特定效果比如:Style:画笔样式,Join图形结合方式等, 本节我们走进Paint的源码,我们来一一介绍这些枚举值,另外我...转载 2018-06-21 06:17:21 · 669 阅读 · 0 评论 -
Paint API之—— Shader(图像渲染)
1.构造方法详解1)BitmapShader(图像渲染)BitmapShader(Bitmap bitmap, Shader.TileMode tileX, Shader.TileMode tileY)使用一张位图作为纹理来对某一区域进行填充,参数依次:bitmap:用来作为填充的位图; tileX:X轴方向上位图的衔接形式; tileY:Y轴方向上位图的衔接形式;而这个S...转载 2018-06-21 06:17:15 · 829 阅读 · 0 评论 -
Paint API之—— PathEffect(路径效果)
本节引言:本节继续来学习Paint的API——PathEffect(路径效果),我们把画笔的sytle设置为Stroke,可以 绘制一个个由线构成的图形,而这些线偶尔会显得单调是吧,比如你想把这些先改成虚线,又 或者想让路径的转角变得圆滑等,那你就可以考虑使用这个PathEffect来实现了!官方API文档:PathEffect进去看文档,可以发现这个PathEffect和我们前面学的...转载 2018-06-20 05:45:33 · 400 阅读 · 0 评论 -
Paint API之—— ColorFilter(颜色过滤器)(3-3)
本节引言:嗯,本来说好今天不写的,还是写吧,毕竟难得空闲哈~,本节给大家带来的是 ColorFilter的第三个子类:PorterDuffColorFilter,看到PorterDuff大家一定不会 陌生吧,假如你看过前面的Android基础入门教程——8.3.5 Paint API之—— Xfermode与PorterDuff详解(二)其实效果都是一样的,只是这里用的是颜色,而且直接设...转载 2018-06-20 05:45:23 · 489 阅读 · 0 评论 -
Paint API之—— ColorFilter(颜色过滤器)(2-3)
本节引言:上一节中我们讲解了Android中PaintAPI中的ColorFilter(颜色过滤器)的第一个子类:ColorMatrixColorFilter(颜色矩阵颜色过滤器),相信又开阔了大家的Android图像处理视野, 而本节我们来研究它的第二个子类:LightingColorFilter(光照色彩颜色过滤器),先上一发 官方API文档:LightingColorFilter,...转载 2018-06-20 05:45:13 · 224 阅读 · 0 评论 -
Paint API之—— ColorFilter(颜色过滤器)(1-3)
本节引言:上节我们学习了MaskFilter(面具),用它的两个子类BlurMaskFilter弄了下模糊效果,EmbossMaskFilter 弄了下浮雕效果,而本节我们来学习的是另一个API——ColorFilter(颜色过滤器),和MaskFilter一样, 我们并不直接使用该类,而是使用该类的三个子类:颜色矩阵颜色过滤器:ColorMatrixColorFilter光照色彩过...转载 2018-06-20 05:45:03 · 1904 阅读 · 0 评论 -
Paint API之—— Xfermode与PorterDuff详解(五)
本节引言:好的,上一节中,我们又写了一个关于Xfermode图片混排的例子——擦美女衣服的Demo,加上前面的 利用Xfermode来实现圆角或圆形ImageView,相信大家对Xfermode已经不再像以前那么陌生了,或者 说有点熟悉了,嗯,本节我们来写Xfermode的最后一个例子,通过Xfermode的ProterDuff.SRC_IN模式来实现文字加载的效果!还是得贴下Proter...转载 2018-06-20 05:44:54 · 140 阅读 · 0 评论 -
Paint API之—— Xfermode与PorterDuff详解(四)
本节引言:上节我们写了关于Xfermode与PorterDuff使用的第一个例子:圆角&圆形图片ImageView的实现, 我们体会到了PorterDuff.Mode.DST_IN给我们带来的好处,本节我们继续来写例子练练手, 还记得8.3.2 绘图类实战示例给大家带来的拔掉美女衣服的实现吗?当时我们的实现方案是,将手指触碰区域附近的20*20个像素点设置为透明,效果图是这样的:...转载 2018-06-20 05:44:48 · 171 阅读 · 0 评论 -
Paint API之——Typeface(字型)
本节带来Paint API系列的最后一个API,Typeface(字型),由字义,我们大概可以猜到,这个 API是用来设置字体以及字体风格的,使用起来也非常的简单!下面我们来学习下Typeface的一些相关 的用法!官方API文档:Typeface~1.字体的可选风格四个整型常量:BOLD:加粗 ITALIC:斜体 BOLD_ITALIC:粗斜体 NORMAL:正...转载 2018-06-21 06:17:28 · 793 阅读 · 0 评论