您不能将Gif 设置为地图标记。
google maps android api v2 中的标记图标是静态图像,一旦创建标记,您将无法更改图标。因此,如果您尝试使用 GIF 图像包含任何动画,它将不受支持,并且只会将 GIF 中的单个图像显示为图标。
参考:Add GIF image to marker of Google Map 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;
}
希望它对你有用。