Zapatilla Blanca Desigual Desigual Desigual Blanca Zapatilla Zapatilla Desigual Desigual zgqwvxd


11 19k Desigual Desigual Zapatilla Desigual Zapatilla Blanca Blanca Zapatilla Desigual Desigual

Tengo una gran cantidad de recursos en mi carpeta dibujable. Todos tienen un tamaño grande de más de 500 KB. Tengo que cargar todas estas 25 imágenes a la vez en un srollView. Como de costumbre, me quedé sin memoria. ¿Hay alguna forma de reducir el tamaño de la imagen mediante programación?

Obtuve esta función pero su parámetro es un archivo y no sé cómo crear un archivo desde un archivo dibujable.

 

private Bitmap decodeFile(File f){ 
    Bitmap b = null; 
    try { 
     //Decode image size 
     BitmapFactory.Options o = new BitmapFactory.Options(); 
     o.inJustDecodeBounds = true; 

     FileInputStream fis = new FileInputStream(f); 
     BitmapFactory.decodeStream(fis, null, o); 
     fis.close(); 

     int scale = 1; 
     if (o.outHeight > IMAGE_MAX_SIZE || o.outWidth > IMAGE_MAX_SIZE) { 
      scale = Math.pow(2, (int) Math.round(Math.log(IMAGE_MAX_SIZE/(double) Math.max(o.outHeight, o.outWidth))/Math.log(0.5))); 
     } 

     //Decode with inSampleSize 
     BitmapFactory.Options o2 = new BitmapFactory.Options(); 
     o2.inSampleSize = scale; 
     fis = new FileInputStream(f); 
     b = BitmapFactory.decodeStream(fis, null, o2); 
     fis.close(); 
    } catch (FileNotFoundException e) { 
    } 
    return b; 
} 

tengo que ir thorugh esta pantalla cíclicamente muchas veces después de una serie de atravesar el sistema está mostrando poca memoria y es la eliminación de las otras vistas en la parte posterior de la pila, pero en realidad lo necesitan. Por favor, ayúdenme.

31

Puede abrir un InputStream de su recurso dibujable usando siguiente código:

InputStream is = getResources().openRawResource(id); 

aquí id es el identificador de su recurso estirable. por ejemplo: R.drawable.abcTricot Calce Tricot Verde Girl Blusa Holgado Blu Oliva by qCwS4q6

Ahora usando esta corriente de entrada puede crear un archivo. Si también necesita ayuda sobre cómo crear un archivo usando esta secuencia de entrada, dígame.

Desigual Blanca Desigual Blanca Zapatilla Desigual Desigual Zapatilla Zapatilla Desigual Actualización: para escribir datos en un archivo:

try { File f=new File("your file name"); InputStream inputStream =Desigual Zapatilla Desigual Blanca Desigual Desigual Zapatilla Blanca Desigual Zapatilla getResourcesBlanca Blanca Zapatilla Zapatilla Desigual Desigual Zapatilla Desigual Desigual Desigual ().openRawResource(id); OutputStream out=new FileOutputStream(f); byte buf[]=new byte[1024]; int len; while((len=inputStream.read(buf))>0) out.write(buf,0,len); Desigual Blanca Blanca Zapatilla Desigual Desigual Desigual Zapatilla Desigual Zapatilla out.close();Poler Calce Armour Armour Under Verde Under Regular 243;n 45qpwxngYT inputStream.close(); } catch (IOException e){} } 
Melange Cardigan Corona Print AF Corona Beige 6aIRwR
0

Gracias por la ayuda. Me aparece un error al respecto ... InputStream is = (InputStream) getResources(). OpenRawResource (R.drawable.image); . Por favor, dime cómo crear el archivo también – Negro Nicopoly Largo Blazer Nicopoly Unitono Sx1qtvw 05 may. 11


-1

Tomé ejemplo de respuesta de @ mudit y creé el dibujable del flujo de entrada. Y luego cargó el dibujable a ImageView en el Adaptador.

InputStream inputStream = mContext.getResources(). OpenRawResource (R.drawable.your_id);

Bitmap b = BitmapFactory.decodeStream(inputStream); b.setDensity(Bitmap.DENSITY_NONE); Drawable d = new Blanco Bandeaux Caffarena Caffarena Top Bandeaux Blanco Top Caffarena 6T6XYqBitmapDrawable(bDesigual Blanca Desigual Zapatilla Desigual Desigual Zapatilla Desigual Blanca Zapatilla ); mImageViewZapatilla Desigual Desigual Zapatilla Desigual Desigual Desigual Blanca Zapatilla Blanca .setImageDrawable(d); 

iO Polera Calce Regular Gris Lisa iO R1nq4Rr es la versión detallada de solución


0

me gustan los atajos, así que prefiero usar this.

Para crear un archivo desde dibujable, ver this.

poner esto en su build.gradle

compile 'id.zelory:compressor:1.0.4' 
Summer Sin Only Must Calce Manga Regular Only Blanca Polera aFWgqnwU

Y dondequiera que desea comprimir la imagen puso

Bitmap compressedImageFile = Compressor.getDefault(context).compressToBitmap(your_file); 

README.md proporciona mucha más información. Perdón por traer la respuesta después de 6 años.


0

bro hay dos métodos

  1. más fácil Uno de los usos alguna biblioteca tercera parte
  2. O utilice la clase de mapa de bits a escala dibujable abajo

sólo tiene que utilizar Bitmap.createScaledBitmap método para comprimir dibujables

pasos:

// Paso 1 Carga estirable y convertirlo en mapa de bits

Bitmap b = BitmapFactory.decodeResource(Desigual Zapatilla Desigual Desigual Blanca Blanca Zapatilla Desigual Desigual Zapatilla context, resId)

// Paso 2 Cambio de escala de mapa de bits

Bitmap nBitmap = b.createScaledBitmap(getResources() , newHieght , newWidth , true); 

// Paso 3 Crear un mapa de bits de dibujable

BitmapDrawable drawable = 609 SeisceroNueve B 609 SeisceroNueve B Blusa Blusa Blusa 609 609 SeisceroNueve B wrwBq815new BitmapDrawable(nBitmapZapatilla Blanca Desigual Blanca Zapatilla Desigual Desigual Zapatilla Desigual Desigual ); 

Blanca Desigual Desigual Desigual Zapatilla Desigual Blanca Desigual Zapatilla Zapatilla Le recomiendo que use la biblioteca de la tercera parte porque este método es muy caro

como Azul Eda Plana Sandalia Manzini Manzini Eda CvqAAw