Cualquier forma de mejorar la velocidad de BitmapFactory.decodeStream ()?

Obviamente esta es una operación costosa y que consume mucho tiempo. Cualquier manera de mejorar esto?

Bitmap bm = BitmapFactory.decodeStream((InputStream) new URL( someUrl).getContent()); 

Supongo que realmente no hay manera de evitar esta operación relativamente intensa, pero quería ver si alguien tenía algunos ajustes que podrían recomendar (aparte de la caché del mapa de bits real, que por cualquier razón simplemente no es relevante aquí)

Si no necesita la resolución completa, puede tenerla sólo lectura en nésimo píxel, donde n es una potencia de 2. Haga esto configurando inSampleSize en un objeto Opciones que pasa a BitmapFactory.decodeFile . Puede encontrar el tamaño de la muestra simplemente leyendo los metadatos del archivo en una primera pasada estableciendo inJustDecodeBounds en el objeto Options . Aparte de eso – no, no creo que haya una manera fácil de hacer que vaya más rápido de lo que ya lo hace.

Editar, ejemplo:

  Options opts = new Options(); // Get bitmap dimensions before reading... opts.inJustDecodeBounds = true; BitmapFactory.decodeFile(path, opts); int width = opts.outWidth; int height = opts.outHeight; int largerSide = Math.max(width, height); opts.inJustDecodeBounds = false; // This time it's for real! int sampleSize = ??; // Calculate your sampleSize here opts.inSampleSize = sampleSize; Bitmap bmp = BitmapFactory.decodeFile(path, opts); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.