将 Gif 图像设置为标记机器人



是否有可能将 Gif 图像设置为标记安卓谷歌地图。在我的项目中,我想将 gif 图像设置为标记

if (bmp != null) {
System.out.println("----marker-set----------" + base64);
marker = googleMap.addMarker(new MarkerOptions()
.position(new LatLng(MyCurrent_lat, MyCurrent_long))
.icon(BitmapDescriptorFactory.fromBitmap(bmp)));
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(MyCurrent_lat, MyCurrent_long),
17));
}

来自文档 :

https://developers.google.com/maps/documentation/android-sdk/marker

https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker

图标 为标记显示的位图。如果图标左侧 如果未设置,将显示默认图标。您可以指定替代项 使用默认标记(浮点型(对默认图标进行着色。

不能将 GIF 图像用于标记,因为图标是静态的。并且您无法在运行时更改映像。但是,您可以使用代码更改图像(通过在事件触发器、计时器等上完全删除标记它,然后使用不同的图像再次添加它(。

不能将Gif设置为地图标记。

谷歌地图安卓 api v2 中的标记图标是静态图像,一旦创建标记,您将无法更改图标。因此,如果您尝试使用 GIF 图像包含任何动画,它将不受支持,并且只有 GIF 中的单个图像将显示为图标。

参考:将GIF图像添加到谷歌地图Api v2的标记

相反,可以使用具有所需图像的自定义标记更改默认地图标记,如下所示:

使用图像支架创建自定义标记布局(ImageView(

初始化地图标记布局

View marker = ((LayoutInflater)getSystemService(getApplicationContext().LAYOUT_INFLATER_SERVICE)).inflate(R.layout.custom_marker_layout, null);
ImageView img = marker.findViewById(R.id.img);

imageView中的图像设置为:

if(bmp!=null)
{
img.setImageBitmap(bmp);
}

将其设置为地图:

Marker customMarker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(lati, longi))
.title(title)
.icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(this, marker))));

其中createDrawableFromView是一种定义为

public static Bitmap createDrawableFromView(Context context, View view)
{
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
view.setLayoutParams(new WindowManager.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT));
view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
view.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}

希望它对你有用。

相关内容

  • 没有找到相关文章

最新更新