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


Imagen dibujable en un lienzo

¿Cómo puedo obtener una imagen en el lienzo para dibujar sobre esa imagen?

  • FloatingActionButton Shadow Cut de Square
  • Path.approximate () no es compatible con android studio 0.8.14 beta
  • Cómo usar la licuadora en Android
  • La ejecución de instrumentación falló debido a 'java.lang.IllegalAccessError'
  • ¿Reactivo-Nativo innecesarios permisos de usuario de Android añadido automáticamente en la compilación?
  • LogCat muestra Nada
  • ¿Cómo evito que un dispositivo Android se duerma programáticamente?
  • Cómo evitar múltiples instancias de una actividad cuando se inicia con diferentes intenciones
  • Cómo encontrar la dirección MAC de un dispositivo Android mediante programación
  • El método getOrientation () de Android devuelve resultados incorrectos
  • Guardar ArrayList en SharedPreferences
  • ¿Puede alguien dar un buen ejemplo de un Custom ViewGroup que contiene una vista personalizada con ejemplos de medida y de diseño? (En Java)
  • 7 Solutions collect form web for “Imagen dibujable en un lienzo”

    La buena manera de dibujar un dibujable en un lienzo no es decodificarlo usted mismo sino dejarlo al sistema para hacerlo:

    Drawable d = getResources().getDrawable(R.drawable.foobar); d.setBounds(left, top, right, bottom); d.draw(canvas); 

    Esto funcionará con todo tipo de dibujos, no sólo mapas de bits. Y también significa que puede reutilizar ese mismo dibujable de nuevo si sólo cambia el tamaño.

    Necesita cargar su imagen como mapa de bits:

      Resources res = getResources(); Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.your_image); 

    A continuación, haga el mapa de bits mutable y crear un lienzo sobre ella:

     Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true)); 

    A continuación, puede dibujar en el lienzo.

    También se puede utilizar de esta manera. Cambiará su ajuste grande del drawble a su lona:

     Resources res = getResources(); Bitmap bitmap = BitmapFactory.decodeResource(res, yourDrawable); yourCanvas.drawBitmap(bitmap, 0, 0, yourPaint); 

    prueba esto

     Bitmap mBitmap = Bitmap.createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter); protected void onDraw(Canvas canvas) { canvas.drawColor(0xFFAAAAAA); canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint); } 
     Drawable d = ContextCompat.getDrawable(context, R.drawable.***) d.setBounds(left, top, right, bottom); d.draw(canvas); 
     package com.android.jigsawtest; 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.SurfaceHolder; import android.view.SurfaceView; public class SurafaceClass extends SurfaceView implements SurfaceHolder.Callback { Bitmap mBitmap; Paint paint =new Paint(); public SurafaceClass(Context context) { super(context); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon); // TODO Auto-generated constructor stub } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub } @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(Color.BLACK); canvas.drawBitmap(mBitmap, 0, 0, paint); } } 

    No estoy seguro de que tengas que cargar la imagen como mapa de bits como tu código ( http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.1_r2/android /widget/ProgressBar.java#ProgressBar.onDraw%28android.graphics.Canvas%29 ) utiliza Drawable.draw(Canvas c) .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.