Вы не можете установить Gif
в качестве маркера карты.
Значок маркера на картах Google Android api v2 является статическим изображением, и вы не можете изменить значок после создания маркера.Поэтому, если вы пытаетесь включить какую-либо анимацию с использованием изображений GIF, она не будет поддерживаться, и в качестве значка будет отображаться только одно изображение из GIF.
refrence: Добавить изображение GIFк маркеру 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;
}
Надеюсь, он работает для вас.