tutorial tamaño que icon custom android database drawable android-bitmap

tamaño - que es un drawable android



Dibujable a byte (5)

Gracias a todos y esto solucionó mi problema.

Resources res = getResources(); Drawable drawable = res.getDrawable(R.drawable.my_pic); Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap(); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] bitMapData = stream.toByteArray();

Tengo una imagen de la web en un ImageView . Es muy pequeño (un favicon) y me gustaría almacenarlo en mi base de datos SQLite. Puedo obtener un Drawable de mImageView.getDrawable() pero luego no sé qué hacer a continuación. No entiendo completamente la clase Drawable en Android.

Sé que puedo obtener una matriz de bytes de un Bitmap como:

Bitmap defaultIcon = BitmapFactory.decodeStream(in); ByteArrayOutputStream stream = new ByteArrayOutputStream(); defaultIcon.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] bitmapdata = stream.toByteArray();

Pero, ¿cómo obtengo una matriz de bytes de un Drawable ?


Si Drawable es un BitmapDrawable, puedes probar este.

long getSizeInBytes(Drawable drawable) { if (drawable == null) return 0; Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); return bitmap.getRowBytes() * bitmap.getHeight(); }

Bitmap.getRowBytes () devuelve el número de bytes entre filas en los píxeles del mapa de bits.

Para más información consulte este proyecto: LazyList


Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tester); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] bitMapData = stream.toByteArray();


Drawable d; // the drawable (Captain Obvious, to the rescue!!!) Bitmap bitmap = ((BitmapDrawable)d).getBitmap(); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] bitmapdata = stream.toByteArray();


File myFile = new File(selectedImagePath); byte [] mybytearray = new byte [filelenghth]; BufferedInputStream bis1 = new BufferedInputStream(new FileInputStream(myFile)); bis1.read(mybytearray,0,mybytearray.length);

Ahora la imagen está almacenada en el bytearray.