如何在google_maps_flutter Flutter插件中使用SVG标记

在此示例中,我将分享如何在google_maps_flutter Flutter插件中使用SVG标记。首先,创建一个函数,该函数将为您提供资产中的BitmapDescriptor。确保在pubspec文件中声明了资产。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import ‘dart:ui’ as ui ; import ‘package:flutter/services.dart’ ; import ‘package:flutter_svg/flutter_svg.dart’ ; Future < BitmapDescriptor > _bitmapDescriptorFromSvgAsset ( BuildContext context , String assetName ) async {      String svgString = await DefaultAssetBundle . of ( context ) . loadString ( assetName ) ;      //Draws string representation of svg to DrawableRoot      DrawableRoot svgDrawableRoot = await svg . fromSvgString ( svgString , null ) ;      ui . Picture picture = svgDrawableRoot . toPicture ( ) ;      ui . Image image = await picture . toImage ( 26 , 37 ) ;      ByteData bytes = await image . toByteData ( format : ui . ImageByteFormat . png ) ;      return BitmapDescriptor . fromBytes ( bytes . buffer . asUint8List ( ) ) ; } 我在应用程序的开头实例化了一个Map对象,这样我就可以使用BitmapDescriptors而不用使用很多异步/等待调用。 data_model.dart 1 2 3 4 5 6 7 Map < CategoryType , BitmapDescriptor > descriptors = Map < Category , BitmapDescriptor > ( ) ; Future < void > loadBitmapDescriptors ( context ) async {      descriptors [ CategoryType . FirstCatgory ] = await _bitmapDescriptorFromSvgAsset ( context , ‘assets/markers/marker-first.svg’ ) ;      descriptors [ CategoryType . SecondCategory ] = await _bitmapDescriptorFromSvgAsset ( context , ‘assets/markers/marker-second.svg’ ) ;      descriptors [ CategoryType . ThirdCategory ] = await _bitmapDescriptorFromSvgAsset ( context , ‘assets/markers/marker-third.svg’ ) ;    } 主镖 1 DataModel . of ( context ) . loadBitmapDescriptors ( context ) ;

友情提示:点赞熊源码网http://www.dianzanxiong.com点赞熊源码网 » 如何在google_maps_flutter Flutter插件中使用SVG标记
分享到:
赞(0)
广告位820*80