Canvas.drawBitmap () tarda más tiempo en dibujar el mapa de bits por primera vez mientras que el mosaico del mapa de bits

Estoy utilizando canvas.drawBitmap (Bitmap, src, dst, null) para la animación. Estoy utilizando 1 imágenes de mosaico para la animación, cada imagen de mosaico que contiene más de 100 imágenes para hacer la animación. He puesto onclickListner para iniciar la animación. ¿Cómo puedo tener una respuesta instantánea para animaciones en onClick?

He utilizado la lógica para la animación según el siguiente enlace. Http://warriormill.com/2009/10/adroid-game-development-part-1-gameloop-sprites/

@Override public void draw(Canvas canvas) { try { FrameInfo frameinfo= animations.get(currentAnimation).sequence.get(currentFrame); Rect rclip = frameinfo.rect; Rect dest = new Rect(this.getXpos(), getYpos(), getXpos() + (rclip.right - rclip.left), getYpos() + (rclip.bottom - rclip.top)); if(cf!=null) { //color filter code here } canvas.drawBitmap(tileSheet, rclip, dest, null); update(); //after drawing update the frame counter } catch (Exception e) { Log.e("ERROR", "ERROR IN SPRITE TILE CODE:"+e.toString()+e.getStackTrace().toString()); } } 

La carga de recursos requiere mucho tiempo (se comprimen dentro de su APK ), tanto que debe cargarlos previamente y no cargarlos justo a tiempo. El método draw() es el último lugar en el que se está realizando cualquier manejo de recursos just-in-time. También debería estar haciendo eso en segundo plano, para evitar problemas de ANR. ¡Una implementación AsyncTask funciona muy bien! También necesitará ser muy cuidadoso al igualar DPI, o drawBitmap() escalará sus mapas de bits, lo que degradará notablemente su velocidad de fotogramas. Si tiene la habilidad, utilice OpenGL con mapeo de textura 2D.

  • inDither = true Android
  • Java.lang.OutOfMemoryError en almacenar imágenes en sqlite db
  • ¿Necesita hacer un cierre adicional en un FileOutputStream al utilizar Bitmap.compress ()?
  • Generar una imagen con texto personalizado en Android
  • ¿Cuándo debo reciclar un mapa de bits usando LRUCache?
  • Android: Bitmap: ¿Cómo guardar el lienzo con fondo verde en android?
  • Java.lang.OutOfMemoryError Incluso en un bloque try-catch?
  • Azulejo de mapa de bits de Android sólo en X
  • Cambiar el color del mapa de bits
  • Convertir Bitmap a Byte matriz sin método de compresión en android
  • ¿Cómo subir varios archivos de imagen en el servidor?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.