有的时候我们需要一种虚线效果,比如图片的边框,愤怒的小鸟的飞翔路径,那么怎么绘制这些虚线呢?方法很多,目前我觉得好的有两种:

一、自己创建模式,一个点一个点的绘制。

二、用Android提供的 DashPathEffect 类来创建模式绘制。

下面我要演示的就是第二种方法,用Android提供给我的API来绘制。

由于是开发项目的一个小块,下面只能给出部分截图:

效果如上面。

下面看一下核心绘图代码:

public void draw(Canvas mcanvas) {

GameLog.log(Tag, "draw");

Paint mLinePaint = new

Paint();

mLinePaint.setColor(Color.WHITE);

mLinePaint.setStyle(Paint.Style.STROKE);

//绘制模式

PathEffect effect = new DashPathEffect(new float[] { 1,

2, 4, 8}, 1);

mLinePaint.setAntiAlias(true); mLinePaint.setPathEffect(effect); mLinePaint.setStrokeWidth(4);

if (GameManager.getState()

== GameManager.GameStart) {

GameLog.log(Tag,

"GameStart");

float[]

oldPts = getPts(mOldPoints);

mCanvas.drawLines(oldPts,

mLinePaint);

prepareLinesData();

float[]

newPts = getPts(mNewPoints);

mCanvas.drawLines(newPts,

mLinePaint);

}

}

下面是关于这个DashPathEffect 的一些说明,摘录的:

DashPathEffect是PathEffect类的一个子类,可以使paint画出类似虚线的样子,并且可以任意指定虚实的排列方式.

代码中的float数组,必须是偶数长度,且>=2,指定了多少长度的实线之后再画多少长度的空白.

如本代码中,绘制长度1的实线,再绘制长度2的空白,再绘制长度4的实线,再绘制长度8的空白,依次重复.1是偏移量,可以不用理会.

简单介绍下 PathEffect类:

PathEffect是用来控制绘制轮廓(线条)的方式。

PathEffect对于绘制Path基本图形特别有用,但是它们也可以应用到任何Paint中从而影响线条绘制的方式。

使用PathEffect,可以改变一个形状的边角的外观并且控制轮廓的外表。

Android包含了多个PathEffect,包括:

CornerPathEffect

可以使用圆角来代替尖锐的角从而对基本图形的形状尖锐的边角进行平滑。

DashPathEffect

可以使用DashPathEffect来创建一个虚线的轮廓(短横线/小圆点),而不是使用实线。你还可以指定任意的虚/实线段的重复模式。

DiscretePathEffect

与DashPathEffect相似,但是添加了随机性。当绘制它的时候,需要指定每一段的长度和与原始路径的偏离度。

PathDashPathEffect

这种效果可以定义一个新的形状(路径)并将其用作原始路径的轮廓标记。

下面的效果可以在一个Paint中组合使用多个Path Effect。

SumPathEffect

顺序地在一条路径中添加两种效果,这样每一种效果都可以应用到原始路径中,而且两种结果可以结合起来。

ComposePathEffect

将两种效果组合起来应用,先使用第一种效果,然后在这种效果的基础上应用第二种效果。

对象形状的PathEffect的改变会影响到形状的区域。这就能够保证应用到相同形状的填充效果将会绘制到新的边界中。

android虚线边框_android 绘制虚线效果相关推荐

  1. autocad ios 虚线_CAD交互绘制虚线(com接口)

    用户可以在控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 ...

  2. android 底边框_Android底表

    android 底边框 In this tutorial we'll discuss and implement android Bottom Sheet widget that was introd ...

  3. android虚线边框_Android实现代码画虚线边框背景效果

    实现如下边框效果: 虚线画效果,可以使用Android中的xml来做.下面话不多说,直接上代码: android:id="@+id/coupon_popup" android:la ...

  4. android虚线边框_Android通过代码实现虚线或者虚线框shape

    虚线 android:shape="line"> android:width="1dp" android:color="#f3f3f3″ and ...

  5. android canvas光晕绘制_Android 绘制发光效果

    之前在看别人写自定义view作绘制的时候,看到别人家的view自带发光效果,看起来也是蛮炫酷的,于是自己也抽出时间来试用一下,这里做了一个模仿太阳的各种状态样式. 先上效果先上效果: 实现方式: pu ...

  6. html把实线变成虚线,Html5 Canvas 绘制虚线和实线的切换方法

    场景应用: 1需朋者说上事是础一发一开程和开数的目前间).最开始默认绘制的都新直能分支调二浏页器朋代说,事刚是实线. var canvas = document.getElementById(&quo ...

  7. html2canvas不识别边框,html2canvas 实现dashed虚线边框

    html2canvas是一个将html元素生成canvas的库,绘制的canvas大部分样式和CSS一致.比如截止1.0.0-alpha.12,虚线边框依然绘制为实线,border-collapse依 ...

  8. html dashed 属性,html2canvas实现dashed虚线边框的示例

    html2canvas是一个将html元素生成canvas的库,绘制的canvas大部分样式和CSS一致.比如截止1.0.0-alpha.12,虚线边框依然绘制为实线,border-collapse依 ...

  9. html2canvas边框线,html2canvas如何实现dashed虚线边框?

    本文和大家分享的主要是前端中html2canvas相关内容,希望通过本文的分享对大家学习web前端有所帮助. html2canvas是一个将html元素生成canvas的库,绘制的canvas大部分样 ...

最新文章

  1. manjaro升级的一些问题
  2. 如何将本地的项目加入git管理?
  3. matlab直方图绘制
  4. Scala集合与Java集合的对比
  5. 上线10天iOS流水破亿,万字长文剖析《最强蜗牛》
  6. 第三次学JAVA再学不好就吃翔(part60)--Arrays类
  7. pictureBox1.Image的获得图片路径的三种方法
  8. editplus public class自动补齐大括号问题破解
  9. 递归转手动管理栈的非递归
  10. 【故障处理】CRS-1153错误处理
  11. ImportError: No module named bs4
  12. 浅谈社交行业风控如何做以及黑产危害
  13. xmlhttp = new XMLHttpRequest();
  14. Java实现第九届蓝桥杯乘积为零
  15. Databuscanal对比
  16. java计算器程序代码,图形化界面
  17. 睦月、水无月、师走……日语12个月的称谓是怎么来的
  18. oracle pivot默认值,oracle关键字pivot行转列【坑爹的三小时,动脑经真累 】
  19. 计算机ppt实验报告总结怎么写,ppt实验报告总结
  20. 用AD画PCB怎样导入LOGOL图标或漫画图案

热门文章

  1. php1000以内菲波,菲波纳奇交易:如何掌握时间与价格优势 Fibonacci Trading
  2. 有没有比较好的网页整站下载工具?
  3. 小甲鱼第一课(分支、字符串)
  4. 王道 操作系统听课笔记整理
  5. 爬虫学习day1遇到问题汇总(带参数的访问百度,代理,金山翻译只能翻译一个固定单词
  6. Rockchip 的 RK818 子模块:电量计介绍相关概念功能、dts 配置...
  7. unity3d UGUI九宫格纹理拉伸的使用
  8. 基于java的项目总结
  9. 方舟服务器商店系统,《方舟:生存进化》转服系统将上线,一键搬家了解一下!...
  10. 四贝夺嫡争代言 骆驼营销背后内幕