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.
- androide sqlite cómo ordenar por el tiempo
- Obtención de una excepción SQLiteCantOpenDatabaseException
- Android: Cursor siempre devuelve null incluso si la base de datos no está vacía
- Android SQLite fts3: ¿Qué debo insertar: valores nulos O cadenas vacías?
- Archivo DB en carpeta de activos. ¿Se actualizará?
Por favor, ayúdame.
Gracias por adelantado..
- Evite borrar los datos de la base de datos al hacer clic en el botón "borrar datos" en la configuración de la aplicación en el dispositivo Android
- ¿Un cursor SQLite vacío devolverá true para isBeforeFirst, isAfterLast, ambos o ninguno?
- ¿Cómo insertar un registro SQLite con una fecha y hora establecida en 'ahora' en la aplicación de Android?
- ¿Sqlite "inserta o reemplaza" trabajo con AUTOINCREMENT clave primaria?
- ¿Puede Universal loader de imágenes para Android trabajar con imágenes de sqlite db?
- Utilizar la instrucción LIMIT en una consulta SQLite
- Cómo crear sqlite declaración preparada en OrmLite?
- SQLite Base de datos "contexto" pasó a adaptador
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.
- ¿Por qué muchas clases de android (ejemplos y fuente) comienzan con "m"?
- ¿Cuál es la mejor manera de crear archivos temporales en Android?