Android高德之旅(8)绘制线

废话

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

简单的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 texturesList = new ArrayList<>();
texturesList.add(BitmapDescriptorFactory.fromResource(R.drawable.texture_1));
texturesList.add(BitmapDescriptorFactory.fromResource(R.drawable.texture_2));

//指定某一段用某个纹理,对应texturesList的index即可, 三个点对应两段颜色
List 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 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和各种属性,我们可以画出很多漂亮的画面,关键看自己的创造力和美术功底。本期节目就到这里,感谢大家收看,我们下期再见~

你可能感兴趣的:(Android高德之旅(8)绘制线)