AnimatedVectorDrawable作为地图标记

时间:2018-05-15 06:36:39

标签: android google-maps-markers google-maps-android-api-2

我想使用animatedvectordrawable作为地图标记有一种方法可以做到这一点。 我使用BitmapDescriptorFactory类将VectorDrawabele转换为位图,它工作正常,但是当我转换AnimatedVectorDrawable时,它在地图上什么都不显示

   .
   .
   .
    MarkerOptions marker1 = new MarkerOptions();
    marker1.icon( getBitmapDescriptor(R.drawable.setpickuplocationdrawable));
    marker1.position(pickuplatlng);
    marker1.title("Marker at place1");
    googleMap.addMarker(marker1);
  }




private BitmapDescriptor getBitmapDescriptor(int id) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        AnimatedVectorDrawable vectorDrawable = (AnimatedVectorDrawable) getDrawable(id);

        int h = vectorDrawable.getIntrinsicHeight();
        int w = vectorDrawable.getIntrinsicWidth();

        vectorDrawable.setBounds(0, 0, w, h);

        Bitmap bm = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bm);
        vectorDrawable.draw(canvas);

        return BitmapDescriptorFactory.fromBitmap(bm);

    } else {
        return BitmapDescriptorFactory.fromResource(id);
    }
}

1 个答案:

答案 0 :(得分:0)

您不能那样做。为了将图像添加到地图作为标记,您将需要一个位图(最好为png)。 您可以做的就是将向量转换为位图,然后重试。