Android开发经验谈Android开发Android技术知识

Android高德之旅(8)绘制线

2017-11-03  本文已影响489人  大公爵

废话

绘制线会比绘制点稍微复杂点,抛开一些复杂的属性不谈,主要分为三类:实线、虚线、纹理。绘制线在自定义地图中是非常重要的一个环节。

简单的api

看下api你会发现,绘制实线、虚线、纹理都是调用一个api:AMap.addPolyline(PolylineOptions);只是option设置的属性不同而已。

(1)绘制实线

polyline = aMap.addPolyline((new PolylineOptions())
        .add(SHANGHAI, BEIJING, CHENGDU)
        .width(10)
        .setDottedLine(false) //关闭虚线
        .color(Color.RED));

(2)绘制虚线

polyline = aMap.addPolyline((new PolylineOptions())
        .add(SHANGHAI, BEIJING, CHENGDU)
        .width(10)
        .setDottedLine(true) //打开虚线
        .color(Color.BLUE));

(3)绘制纹理

//用一个数组来存放纹理
List<BitmapDescriptor> texturesList = new ArrayList<>();
texturesList.add(BitmapDescriptorFactory.fromResource(R.drawable.texture_1));
texturesList.add(BitmapDescriptorFactory.fromResource(R.drawable.texture_2));

//指定某一段用某个纹理,对应texturesList的index即可, 三个点对应两段颜色
List<Integer> texIndexList = new ArrayList<>();
texIndexList.add(0);//对应上面的第0个纹理
texIndexList.add(1);//对应上面的第1个纹理

PolylineOptions options = new PolylineOptions();
options.width(30);//设置宽度

//加入三个点
options.add(SHANGHAI, BEIJING, CHENGDU);

//加入对应的颜色,使用setCustomTextureList 即表示使用多纹理;
options.setCustomTextureList(texturesList);

//设置纹理对应的Index
options.setCustomTextureIndex(texIndexList);
polyline = aMap.addPolyline(options);

(4)总的来看下效果

(5)属性设置

名称 说明
setCustomTexture(BitmapDescriptor customTexture) 设置线段的纹理,建议纹理资源长宽均为2的n次方
setCustomTextureIndex(java.util.List<java.lang.Integer> custemTextureIndexs) 设置分段纹理index数组
setCustomTextureList(java.util.List customTextureList) 设置分段纹理list
setDottedLine(boolean isDottedLine) 设置是否画虚线,默认为false,画实线
setUseTexture(boolean useTexture) 是否使用纹理贴图
useGradient(boolean useGradient) 设置是否使用渐变色
visible(boolean isVisible) 设置线段的可见性
width(float width) 设置线段的宽度,单位像素
zIndex(float zIndex) 设置线段Z轴的值

总结

不要看演示的demo很简单,充分运用现有的api和各种属性,我们可以画出很多漂亮的画面,关键看自己的创造力和美术功底。本期节目就到这里,感谢大家收看,我们下期再见~

上一篇 下一篇

猜你喜欢

热点阅读