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/
- Excepción en unbindDrawables
- Imagen de mapa de bits sin memoria
- Obtenga el ancho y la altura del mapa de bits sin cargar en la memoria
- Cargar mapa de bits con Picasso
- Java.lang.OutOfMemoryError - BitmapFactory.decode (strPath)
@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()); } }
- ¿Cuándo reciclar mapa de bits en el proyecto android?
- Los bordes en la imagen no son suaves después de setpixels en android
- Cómo optimizar la imagen como Facebook y WhatApp?
- Carga de Android desde la URL a Bitmap
- Guardando una imagen grande en PNG
- Convertir vista a mapa de bits en Android
- Mejorando la velocidad de getpixel () y setpixel () en Android Bitmap
- Fondo de pantalla en vivo con imágenes
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.