Mostrar marcador dentro de un recurso dibujable que obtenido de url
Aquí está la página del mapa que tengo, que muestra todos los usuarios de mi aplicación. También las imágenes (marcadores) se obtienen de la URL dada desde mi servidor. Estos marcadores tienen que poner dentro de un dibujable (un círculo como la imagen como se muestra). Creé un círculo como el mapa de bits de la url usando lienzo.
- Android google maps no se puede ampliar con compás activo
- Error al buscar el estilo mapViewStyle
- Problema con la eliminación de la polilínea google map v2 android
- ¿Cómo puedo analizar puntos y trazar una ruta en un mapa de Google en Android?
- MapView dentro de ScrollView?
public Drawable showMe(String url) { Bitmap bitmap=null; try { URL newurl = new URL(url); bitmap = BitmapFactory.decodeStream(newurl.openConnection().getInputStream()); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } bitmap=getBitmap(url); Paint paint = new Paint(); paint.setFilterBitmap(true); int targetWidth = 30; int targetHeight = 30; Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight,Bitmap.Config.ARGB_8888); RectF rectf = new RectF(0, 0, 30, 30); Canvas canvas = new Canvas(targetBitmap); Path path = new Path(); path.addRoundRect(rectf, targetWidth, targetHeight, Path.Direction.CW); canvas.clipPath(path); canvas.drawBitmap( bitmap, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), new Rect(0, 0, targetWidth, targetHeight), paint); Matrix matrix = new Matrix(); matrix.postScale(1f, 1f); Bitmap resizedBitmap = Bitmap.createBitmap(targetBitmap, 0, 0, 30, 30, matrix, true); Bitmap bitmap_circle=mergeBitmaps(resizedBitmap); BitmapDrawable bd = new BitmapDrawable(bitmap_circle); return bd; }
La función anterior creará el dibujable final para el marcador. También la función mergeBitmaps () fusionará tanto el recurso dibujable como el mapa de bits juntos.
public Bitmap mergeBitmaps(Bitmap manBitmap){ try{ Bitmap markerBitmap = BitmapFactory.decodeResource( this.getResources(), R.drawable.circle_bg); Bitmap bmOverlay = Bitmap.createBitmap(markerBitmap.getWidth(), markerBitmap.getHeight(), markerBitmap.getConfig()); Canvas canvas = new Canvas(bmOverlay); Matrix matrix = new Matrix(); matrix.postScale(1f, 1f); canvas.drawBitmap(markerBitmap, matrix, null); canvas.drawBitmap(manBitmap, 5, 5, null); return bmOverlay; } catch(Exception ex){ ex.printStackTrace(); return null; } }
Pero el problema es que este mapa de bits no es el mejor ajuste dentro del fondo Dibujable con el fin de obtener una sensación de que ambos juntos dará una sola imagen.
Alguien puede ayudarme ?
- Google Maps v2 que centra y que da vuelta a la posición de la cámara para caber dos marcadores
- Monodroid Google Maps v2 - La tarea "LinkAssemblies" falló inesperadamente
- Cambiar o quitar completamente el color de resaltado de un InfoWindow de Google Maps v2 en Android
- Cómo especificar el tamaño del icono en el Marcador en Google Maps V2 Android
- Android - Google Maps API v2 - NoClassDefFoundError
- ActivityCompat.requestPermissions no muestra el mensaje
- Cómo utilizar el API AutocompleteFilter de Android Places
- Uso de OSM en lugar de Google Maps en la aplicación para Android
cambio
canvas.drawBitmap(manBitmap, 5, 5, null);
A smtg como
canvas.drawBitmap(manBitmap, (markerBitmap.getWidth()-manbitmap.getWidth())/2, (markerBitmap.getHeight()-manbitmap.getHeight())/2, null);
- La indexación de aplicaciones de Google no funciona en el campo de descripción, sino en el campo de título
- ¿Se recomienda comprobar la vista de null con cada llamada findViewById?