android绘制矢量图

在drawable目录下创建一个vector文件.

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="20dp"
        android:height="20dp"
        android:viewportHeight="300"
        android:viewportWidth="300"
    >
<path android:fillColor="#850fbf"
        android:pathData="m64.1825,142.57981l11.74545,
        -32.13762l30.74983,-19.86238l38.00946,0l30.75002,
        19.86238l11.74526,32.13762l-11.74526,32.13762l-30.75002,19.
        86237l-38.00946,0l-30.74983,-19.86237l-11.74545,-32.13762z"
    ></path>

</vector>

其中 width 和 height 是指图形的宽高, viewportHeight 和 viewportWidth 是画布的宽高
fillcolor 是指图形内部填充的颜色

pathData 就是整个绘制的过程.

可以通过 editor.method.ac(链接) 进行绘制,然后获取pathData里面的数据,直接复制即可.
获取方法: 绘制完成后,在Method Draw 这个工具的导航栏里面点击view, source,可以看到整个绘制过程
<svg width="580" height="400" xmlns="http://www.w3.org/2000/svg">
 <!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ -->
 <g>
  <title>background</title>
  <rect fill="#fff" id="canvas_background" height="402" width="582" y="-1" x="-1"/>
  <g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" id="canvasGrid">
   <rect fill="url(#gridpattern)" stroke-width="0" y="0" x="0" height="100%" width="100%"/>
  </g>
 </g>
 <g>
  <title>Layer 1</title>
  <path stroke="#000" id="svg_1" d="m489.099,199.26264c-8.72741,-1.31785 -15.44933,-9.09971 -13.51485,-17.42803c2.29022,-10.99178 13.00256,-18.73926 23.50181,-23.04114c8.49242,-3.22194 18.8659,-3.75608 26.944,0.75939c0.32184,-52.90159 0.1409,-105.80539 0.18862,-158.70799c2.85079,-0.11319 6.11636,-0.66628 5.33823,3.06911c0.23162,8.80807 5.84319,16.23586 12.81524,21.74629c14.8103,12.71897 31.22857,27.43257 32.5336,47.35382c1.39557,7.80472 -3.09831,15.48645 -1.19559,23.06286c1.81621,7.46771 1.27474,15.21985 0.12766,22.72589c5.39353,13.47176 4.09115,28.98281 -1.78468,42.13736c0.54278,4.11108 -9.90773,10.81816 -5.32987,3.96664c6.18152,-12.49637 9.43333,-27.86569 2.72993,-40.72447c-8.11846,-12.46287 -22.89243,-18.85306 -35.00699,-27.36194c-8.43214,-7.91076 -3.88676,7.45962 -5.14293,12.04163c-0.18746,22.47674 -0.20228,44.95429 -0.29407,67.43147c-3.77524,8.56252 -10.70002,15.81179 -19.92267,19.52883c-6.76119,2.93979 -14.52874,4.88331 -21.98744,3.44027l-0.00001,0zm82.23478,-96.89487c-5.22521,-17.45623 -21.849,-29.28703 -38.07797,-37.81337c-4.44257,-0.5787 1.31714,9.43557 2.56522,12.53667c5.81276,10.61801 17.25934,16.88557 25.51351,25.65511c3.60085,2.77884 7.69987,8.51307 10.50996,10.0471c0.40832,-3.45895 0.1611,-7.00696 -0.51071,-10.42552l-0.00001,0.00001zm0.6574,-23.81235c-0.0827,-14.67214 -11.91356,-26.36706 -23.38047,-35.09938c-5.34665,-3.29623 -11.8124,-8.84663 -17.30369,-9.51213c1.04503,8.16713 4.97588,16.16475 12.19686,21.17411c10.27346,9.28722 21.13494,18.55114 28.26307,30.21451c0.82058,-2.02755 0.09387,-4.61395 0.22423,-6.77712z" stroke-width="1.5" fill="#fff"/>
 </g>
</svg>

把其中的计算过程复制到项目的pathData 里面即可完成绘制,

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android绘制自定义地图可以通过以下步骤实现: 1. 获取地图数据:首先,需要获取自定义地图的数据,这可以是由地图提供者提供的矢量数据、栅格数据或者是在地图编辑器中创建的自定义地图图层。 2. 解析地图数据:将获取到的地图数据解析成可以在Android绘制的格式。这可能涉及到解析矢量数据、转换图像数据格式或者解析自定义地图文件格式。 3. 创建自定义绘制视图:在Android中,我们可以使用自定义绘制视图来实现绘制自定义地图。通过继承View类或者SurfaceView类,并重写相应绘制方法(如onDraw方法),可以在布上绘制地图数据。 4. 绘制地图数据:在自定义绘制视图中,通过使用Canvas对象和Paint工具等工具,可以将解析好的地图数据绘制布上。根据需求,可以自定义地图的样式、颜色、线条粗细等。 5. 处理地图交互:在绘制地图的同时,还可以处理一些地图交互操作,例如实现点击地图位置获取地理坐标、实现地图缩放和平移等操作。可以通过添加触摸事件监听器来实现相应的交互处理。 6. 更新地图数据:如果自定义地图需要动态更新,可以根据需要实现数据更新的逻辑,例如定期从服务器获取最新地图数据,并重新解析和绘制地图。 7. 优化性能:在绘制自定义地图时,需要考虑性能优化,避免频繁的绘制操作导致卡顿。可以使用缓存技术、合并绘制操作、使用硬件加速等手段来提高绘制效率。 总之,Android绘制自定义地图的关键是获取并解析地图数据,然后通过自定义绘制视图来展示地图数据,并处理相应的地图交互操作。 ### 回答2: Android绘制自定义地图可以通过以下步骤实现: 1. 准备地图数据:首先需要获取自定义地图数据,可以是地图的矢量数据或者图片,如SVG格式的矢量地图或者PNG格式的图片地图。可以从地图提供商获取或者自行制作。 2. 绘制地图背景:在Android的绘图环境Canvas上创建一个布,并且使用地图背景色填充整个布。 3. 坐标转换:根据地图数据和设备屏幕的尺寸,将坐标进行转换,使得地图上的坐标点对应到屏幕上的实际像素点。 4. 绘制地图要素:根据地图数据,将地图要素逐个绘制布上,如绘制地图的道路、河流、建筑等等。可以借助AndroidCanvas来完成这些绘制操作,如使用笔设置颜色、线宽等属性,使用路径(Path)来绘制直线、曲线,使用矩形(Rect)来绘制建筑等等。 5. 绘制标注和图标:根据需要,在地图上绘制标注和图标,如标记地点的名称、行政区划边界、POI点等等。可以使用Canvas的文本绘制功能来绘制标注的文本,可以使用Bitmap来绘制图标。 6. 交互操作:可以通过触摸事件来实现对地图的交互操作,如放大、缩小、平移地图等。可以根据用户的操作,重新计算地图的显示范围并更新布上的绘制内容。 7. 地图样式和主题:可以根据需求自定义地图的样式和主题,如修改地图要素的颜色、线宽、字体等属性,调整地图的显示效果。 绘制自定义地图需要有一定的绘图技巧和地理知识,同时需要理解Android的绘图原理和API。通过上述步骤,可以实现在Android应用中绘制出自定义的地图,满足特定需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值