废话
绘制线会比绘制点稍微复杂点,抛开一些复杂的属性不谈,主要分为三类:实线、虚线、纹理。绘制线在自定义地图中是非常重要的一个环节。
简单的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和各种属性,我们可以画出很多漂亮的画面,关键看自己的创造力和美术功底。本期节目就到这里,感谢大家收看,我们下期再见~