¿Cómo usar PersistentBitmap con cambio de tamaño de mapa de bits?

Actualmente uso un código como este que funciona para reajustar los mapas de bits para diferentes tamaños de pantalla:

A.back = GPATools.ResizeTransparentBitmap(A.back, 150, 37,
                    Bitmap.FILTER_LANCZOS, Bitmap.SCALE_TO_FIT);

Sin embargo, cada vez que cargo la aplicación, me toma tiempo volver a cambiar su tamaño, por lo que me han dicho que use este código para eso:

class PersistableBitmap implements Persistable {

    int width;
    int height;
    int[] argbData;

    public PersistableBitmap(Bitmap image){
        width = image.getWidth();
        height = image.getHeight();
        argbData =new int[width * height];
        image.getARGB(argbData,0, width,0,0, width, height);
    }

    public Bitmap getBitmapImage(){
        Bitmap image =new Bitmap(width, height);
        image.setARGB(argbData,0, width,0,0, width, height);
        return image;
    }

¡Mi problema es que no tengo idea de cómo implementar los dos juntos! Por favor ayuda chicos/chicas, muchas gracias!

preguntado el 03 de mayo de 12 a las 16:05

¡Agregue algunos espacios en blanco al fragmento al menos! -

Supongo que tu mapa de bits es muy grande y que has hecho las pruebas pertinentes para comprobar que el cambio de tamaño consume más tiempo que cargarlo desde la persistencia. De lo contrario, le sugiero que incluya la imagen preescalada en los recursos del proyecto, o incluso almacene en caché el mapa de bits en el almacén de tiempo de ejecución. -

espacios en blanco? De todos modos, tengo muchas imágenes, no son grandes, pero es solo una gran cantidad. Alguien también sugirió que podría estar bloqueando la interfaz de usuario principal y ponerlo en otro hilo, pero no estoy exactamente seguro de cómo hacerlo. -

Cambiar classPersistableBitmapimplementsPersistable a class PersistableBitmap implements Persistabley solucionar otros problemas. -

eso fue solo un error de copiar y pegar Rupak. Me pregunto cómo implementar las dos codificaciones diferentes:

1 Respuestas

contestado el 23 de mayo de 17 a las 12:05

Ya sé cómo usar el almacenamiento persistente para datos regulares, su almacenamiento de mapas de bits es mi problema actual. Gracias de todos modos. - Joey Juan Juan

Una instancia de Bitmap es solo una combinación de regular data, es decir, tipos de datos primitivos. Dijiste que ya sabes cómo usar el almacenamiento persistente para datos regulares, entonces, ¿cuál es el problema con la clase? PersistableBitmap? Solo necesitas almacenar solo width, heighty argbData de la clase PersistableBitmap. Y cuando termine de leer ese objeto del almacén de persistencia, puede usar getBitmapImage() para obtener el Bitmap. Si tiene alguna confusión, cualquiera de los enlaces anteriores puede ayudarlo. - Rupak

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.