Path类可以预先在View上将N个点连成一条"路径",然后调用Canvas的drawPath(path,paint)即可沿着路径绘制图形

Android还为路径绘制提供了PathEffect来定义绘制效果,PathEffect包含如下子类

ComposePathEffect

CornerPathEffect

DashPathEffect

DiscretePathEffect

PathDashPathEffect

SumPathEffect

下面的示例将会逐一使用上面的绘制效果

[java] view plaincopyprint?
  1. package WangLi.Graphics.PathTest;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.graphics.Canvas;
  5. import android.graphics.Color;
  6. import android.graphics.ComposePathEffect;
  7. import android.graphics.CornerPathEffect;
  8. import android.graphics.DashPathEffect;
  9. import android.graphics.DiscretePathEffect;
  10. import android.graphics.Paint;
  11. import android.graphics.Path;
  12. import android.graphics.PathDashPathEffect;
  13. import android.graphics.PathEffect;
  14. import android.graphics.SumPathEffect;
  15. import android.os.Bundle;
  16. import android.view.View;
  17. public class PathTest extends Activity {
  18. /** Called when the activity is first created. */
  19. @Override
  20. public void onCreate(Bundle savedInstanceState) {
  21. super.onCreate(savedInstanceState);
  22. setContentView(new MyView(this));
  23. }
  24. class MyView extends View
  25. {
  26. float phase;
  27. PathEffect[] effects = new PathEffect[7];
  28. int[] colors;
  29. private Paint paint;
  30. Path path;
  31. public MyView(Context context) {
  32. super(context);
  33. paint = new Paint();
  34. paint.setStyle(Paint.Style.STROKE);
  35. paint.setStrokeWidth(4);
  36. //创建,并初始化Path
  37. path = new Path();
  38. path.moveTo(0, 0);
  39. for(int i = 1; i<= 15; i++)
  40. {
  41. //生成15个点,随机生成它们的坐标,并将它们连成一条Path
  42. path.lineTo(i*20, (float)Math.random()*60);
  43. }
  44. //初始化七个颜色
  45. colors = new int[] {
  46. Color.BLACK,Color.BLUE,Color.CYAN,
  47. Color.GREEN,Color.MAGENTA,Color.RED,Color.YELLOW
  48. };
  49. }
  50. protected void onDraw(Canvas canvas)
  51. {
  52. //将背景填充成白色
  53. canvas.drawColor(Color.WHITE);
  54. //-------下面开始初始化7中路径的效果
  55. //使用路径效果
  56. effects[0] = null;
  57. //使用CornerPathEffect路径效果
  58. effects[1] = new CornerPathEffect(10);
  59. //初始化DiscretePathEffect
  60. effects[2] = new DiscretePathEffect(3.0f,5.0f);
  61. //初始化DashPathEffect
  62. effects[3] = new DashPathEffect(new float[]{20,10,5,10},phase);
  63. //初始化PathDashPathEffect
  64. Path p = new Path();
  65. p.addRect(0, 0, 8, 8, Path.Direction.CCW);
  66. effects[4] = new PathDashPathEffect(p,12,phase,PathDashPathEffect.Style.ROTATE);
  67. //初始化PathDashPathEffect
  68. effects[5] = new ComposePathEffect(effects[2],effects[4]);
  69. effects[6] = new SumPathEffect(effects[4],effects[3]);
  70. //将画布移到8,8处开始绘制
  71. canvas.translate(8, 8);
  72. //依次使用7中不同路径效果,7种不同的颜色来绘制路径
  73. for(int i = 0; i < effects.length; i++)
  74. {
  75. paint.setPathEffect(effects[i]);
  76. paint.setColor(colors[i]);
  77. canvas.drawPath(path, paint);
  78. canvas.translate(0, 60);
  79. }
  80. //改变phase值,形成动画效果
  81. phase += 1;
  82. invalidate();
  83. }
  84. }
  85. }

效果如下

Android 室内定位系列:1地图构建相关推荐

  1. 百度地图android室内定位,百度地图4.0正式发布,主打免费语音导航、室内定位、实时公交和生活搜索 (视频)...

    自2010年10月百度地图在塞班平台上线了第一个版本以后,陆续登陆了Android和iPhone平台,据百度地图团队介绍,其最新的用户数已达7000万.今天,百度地图4.0 正式发布(iPhone版 ...

  2. android室内定位+3d,基于Android平台的手机室内定位及导航的设计与实现

    摘要: 随着无线通信网络技术的发展,智能手机逐渐融入到人们的日常生活中.它不仅满足当今人们对于通话短信等基本功能的需求,而且还满足人们对于娱乐.上网.社交等功能的需求.导航功能是现在人们常用的一个功能 ...

  3. 室内定位系列 ——WiFi位置指纹(译)

    摘要 GPS难以解决室内环境下的一些定位问题,大部分室内环境下都存在WiFi,因此利用WiFi进行定位无需额外部署硬件设备,是一个非常节省成本的方法.然而WiFi并不是专门为定位而设计的,传统的基于时 ...

  4. Android调用WebService系列之对象构建传递

    上一篇我们讲了如何封装Android调用WebService的能力,把上一章的类加入我们便有了与WebService通讯的能力.往往我们会遇到WebService调用是通过对象来进行实际交互调用的.于 ...

  5. android室内定位传感器辅助pdr jar,基于Android的PDR和WiFi指纹融合室内定位技术研究...

    摘要: 随着三大通信运营商"4G+"技术发力和基于"互联网+"相关产业的快速发展,基于位置的服务(Location-based Services,LBS)在市场 ...

  6. android室内定位传感器辅助pdr jar,基于PDR辅助的视觉室内定位算法的研究

    1引言由于室内环境复杂多变,人们对于室内位置服务的要求也越来越高.一系列的定位技术如Wi-Fi定位.蓝牙定位.惯性导航系统(INS, Inertial NavigationS y s t e m).基 ...

  7. android室内定位传感器辅助pdr ,传感器辅助的WiFi指纹室内定位方法.pdf

    传感器辅助的WiFi指纹室内定位方法.pdf 第 1期 中嚼荡:舛謦呵宪成.簪椒 VoI.10No.1 2015年 2月 JournalofCAEIT Feb. 2015 doi:10.3969/j. ...

  8. 室内定位 基于CAD 地图 基于Openlayers 室内地图 SHP WEB Geoserver 井下人员定位

    项目需求主要是实现井下的人员定位功能,通过项目方给的dwg格式地图,以web的形式进行加载,进而在地图上实时显示人员位置,点击查看人员信息,绘制人员历史轨迹,统计等主要功能.

  9. 室内定位指纹采集系统-Android WIFI版本

    本文主要介绍了物联网室内定位中,指纹定位系统研究过程中需要的软件开发思路,目前完成的有Android端WIFI信号的获取与划定采集区域采集WIFI信号指纹库等功能. 声明: 本系统涉及软件只用于学术研 ...

最新文章

  1. 你猜猜typeof (typeof 1) 会返回什么值(类型)?!
  2. Qt设置应用程序图标
  3. (转)SSL/TLS 漏洞“受戒礼”,RC4算法关闭
  4. 分类9个无理数并比较他们之间的分布差异
  5. Qt QGraphics体系及刷新机制介绍
  6. React开发(208):react代码分割在嵌套组件中更新 Context
  7. vue-cli-service不是内部或外部命令,也不是可运行的程序
  8. 计算机组成原理R0bus是什么,计算机组成原理实验 堆栈寄存器实验
  9. w ndows10玩游戏蓝屏,Win10系统玩游戏蓝屏提示代码0x0000007E的两种解决方法
  10. 设置webstorm实时预览看这一篇就够了,5分钟解决!!
  11. 大数据架构由哪些模块组成
  12. C语言程序设计 基础入门(认识、描述与计算)
  13. 解密中国网络游戏业的黑暗骑士:响尾马(下)
  14. cr3格式是什么意思_佳能rp的cr3如何打开?修图为什么要用raw格式?转码又是什么?...
  15. H5调起手机端的摄像头
  16. 报错Found existing installation: tensorflow 1.2.1
  17. 仿微信.QQ聊天界面
  18. 理]疏通中国历史脉络——“魏(三国)、晋(五胡十六国)、南北朝”篇
  19. python实现BMI计算器
  20. 使用公众号快速申请小程序的流程

热门文章

  1. MCtalk对话抱抱星英语:从Diss在线英语教学乱象到回归教育本原
  2. 热备份路由选择协议(HSRP)
  3. Count Primes(leetcode204)
  4. 轮播插件swiper.js?
  5. JAVA入门[23]-SpringBoot配置Swagger2
  6. 在远程桌面在目标主机与客户机复制文件?
  7. 两大上市公司联手,打造智慧城市安防领域生态闭环
  8. 关于css3的自定义字体
  9. 部分博客中的代码已放到了GitHub上,欢迎大家下载阅读!
  10. Training的第十六天