Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Dibujar objeto / imagen sobre lienzo

¿Hay otra manera de dibujar un objeto en un lienzo en android?

Este código dentro de draw () no funciona:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin); 
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);

Bueno, en realidad, está trabajando en mi código primero, pero cuando he transferido esto a otra clase llamada MarkOverlay, ya no funciona.

  markerOverlay = new MarkerOverlay(getApplicationContext(), p); listOfOverlays.add(markerOverlay); 

¿Qué parámetro debo pasar a MarkerOverlay para que este código funcione? El error está en algún lugar de getResources ().

FYI, canvas.drawOval funciona perfectamente, pero realmente quiero dibujar una imagen no un óvalo. 🙂

  • Convertir elementos de vista de lista en una sola imagen de mapa de bits
  • Android: ancho máximo permitido y altura del mapa de bits
  • Cómo solucionar problemas de java.lang.OutOfMemoryError en Android
  • Obtener el tamaño de Bitmap Android
  • Cómo obtener Bitmap del recurso predeterminado de android?
  • Java: escala Mapsforge Map al usar mosaicos de mapa de bits en línea en lugar del renderizador sin conexión
  • Bitmap decodeStream OutOfMemory Excepción
  • Android PNG a Bitmap - SkImageDecoder :: Factory devuelto null
  • 2 Solutions collect form web for “Dibujar objeto / imagen sobre lienzo”

     package com.canvas; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class Keypaint extends View { Paint p; @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); p=new Paint(); Bitmap b=BitmapFactory.decodeResource(getResources(), R.drawable.icon); p.setColor(Color.RED); canvas.drawBitmap(b, 0, 0, p); } public Keypaint(Context context) { super(context); } } 

    Prefiero hacer esto ya que sólo genera la imagen una vez:

     public class CustomView extends View { private Drawable mCustomImage; public CustomView(Context context, AttributeSet attrs) { super(context, attrs); mCustomImage = context.getResources().getDrawable(R.drawable.my_image); } ... protected void onDraw(Canvas canvas) { Rect imageBounds = canvas.getClipBounds(); // Adjust this for where you want it mCustomImage.setBounds(imageBounds); mCustomImage.draw(canvas); } } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.