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?

  • Las pestañas de Tablayout de Android con la insignia de notificación como whatsApp
  • Comprobar imagen semi cargada o no en Android
  • ¿Cómo obtengo un archivo apk desde un dispositivo Android?
  • Carrusel en Android
  • Estilo de fondo del botón de radio de Android cuando está seleccionado
  • Error Robolectric y Google Analytics en las pruebas
  • ¿Hay una manera de tener un grupo de radio ser presentado horizontalmente?
  • Recomendaciones para el desarrollador C # -ish con respecto a transistion suave a Android?
  • 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.