Visualización de la imagen desde la base de datos sqlite con el cursor en android

Quiero mostrar la imagen en la vista de la imagen desde la base de datos sqlite con el cursor. Utilicé debajo del código para recuperar la imagen pero no puedo exhibir la imagen en view.

Cursor c=this.db.query(TABLE_NAME, new String[] { "name","price","image" }, null, null, null, null, null); name.setText(c.getString(0)); price.setText(c.getString(1)); byte b[]=c.getBlob(2); Bitmap bp=BitmapFactory.decodeByteArray(b, 0, b.length); ImageView image=(ImageView)findViewById(R.id.ImageView); //ByteArrayInputStream imageStream = new ByteArrayInputStream(b); //Bitmap theImage = BitmapFactory.decodeStream(imageStream); //image.setImageBitmap(theImage); image.setImageBitmap(bp); 

Aparte de la imagen, el nombre y el precio, pero la imagen no se mostrará. Cualquier sugerencia o código que me ayude a resolver este problema.

Por favor, ayúdame.

Gracias por adelantado..

He intentado utilizar Stream en lugar de matriz de bytes, el ejemplo de la mina simplemente funciona para mí. También intenta utilizar Cursor.getColumnIndex ()

  byte[] blob = c.getBlob(c.getColumnIndex(YourDB.IMAGE)); ByteArrayInputStream inputStream = new ByteArrayInputStream(blob); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); 

Aquí está mi declaración de la "tabla de la creación", los pls comprueban de nuevo el suyo

  create table datatable(_id INTEGER PRIMARY KEY AUTOINCREMENT, image BLOB, price INTEGER); 

Intente este objeto del cursor; // su cursor

  mImageView.setImageBitmap(getImageFromBLOB(object.getBlob(object.getColumnIndex("book_thumb")))); public static Bitmap getImageFromBLOB(byte[] mBlob) { byte[] bb = mBlob; return BitmapFactory.decodeByteArray(bb, 0, bb.length); } 

En primer lugar por favor no almacenar las imágenes en la base de datos porque sqlite no soportará más de 1 MB, puede estar equivocado, las imágenes deben ser almacenar en los activos o la carpeta drawble y el nombre de las imágenes deben ser almacenar en la base de datos, Del nombre a la conversión de recursos por código

  String videoFileName= c.getString(c.getColumnIndex(TB_SETTING_VIDEOFILENAME)); int dot = videoFileName.lastIndexOf("."); videoFileName=videoFileName.substring(0,dot); Log.d("VIDEOFILENAME", videoFileName); int videoFileRId = getResources().getIdentifier(videoFileName , "raw", getPackageName()); 

Espero que esto ayude.

  • La mejor manera de trabajar con las fechas en Android SQLite
  • ¿Cómo se obtiene el tipo de un cursor?
  • Creación de una clase de modelo de datos para el manejo de bases de datos
  • Intento escribir una base de datos readonly ... pero no estoy
  • Acceso a la base de datos sqlite en el dispositivo android
  • Android: Sugar ORM No hay tal excepción de tabla
  • Cláusula IN y marcadores de posición
  • Cómo eliminar las viejas filas de la base de datos sqlite en android?
  • Cómo hacer una copia de seguridad / restaurar la base de datos SQLite en Android a Dropbox
  • Crear tabla adicional en SQLITE existente (sin pérdida de datos)
  • Cómo ver los datos guardados en la base de datos android (SQLite)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.