jak przechowywać i pobierać obrazy w androidowej bazie danych SQLite i wyświetlać je w widoku grid
Jestem nowym użytkownikiem Androida. Stworzyłem tabelę, która ma itemName, Price i image. Próbuję pobrać pola obrazu i nazwy i wyświetlić je w widoku siatki
Oto moja instrukcja tworzenia bazy danych:
DBAdapter class onCreate()
db.execSQL("CREATE TABLE "+ITEMS_TABLE+" ( "+ COLUMN_ITEM_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_ITEM_NAME +" TEXT, "+ COLUMN_ITEM_SPECS +" TEXT, " + COLUMN_ITEM_PRICE +
" NUMBER, " + COLUMN_ITEM_IMAGE + " BLOB, " + COLUMN_ITEM_QTY +" NUMBER)");
void AddItems(ItemsPojo itemsObj)
{
Log.i("in here", "item fields");
SQLiteDatabase db= DBHelper.getWritableDatabase();
if (db==null)
{
Log.i("nulll", "mnllllsg");
}
ContentValues cv=new ContentValues();
cv.put(COLUMN_ITEM_NAME, itemsObj.getItemName());
cv.put(COLUMN_ITEM_SPECS, itemsObj.getItemSpecs());
cv.put(COLUMN_ITEM_PRICE, itemsObj.getItemPrice());
cv.put(COLUMN_ITEM_QTY, itemsObj.getItemQty());
cv.put(COLUMN_ITEM_IMAGE, itemsObj.getItemImg());
long affectedColumnId = db.insert(ITEMS_TABLE, null, cv);
db.close();
}
public Bitmap getAllImages()
{
SQLiteDatabase db=DBHelper.getWritableDatabase();
//Cursor cur= db.rawQuery("Select "+colID+" as _id , "+colName+", "+colAge+" from "+employeeTable, new String [] {});
Cursor cur= db.rawQuery("SELECT * FROM "+ITEMS_TABLE,null);
//if(cur.getCount() > 0){
//Cursor c = mDb.query(" ... ");
cur.moveToFirst();
ByteArrayInputStream inputStream = new ByteArrayInputStream(cur.getBlob(cur.getColumnIndex(COLUMN_ITEM_IMAGE)));
Bitmap b = BitmapFactory.decodeStream(inputStream);
// }
return b;
}
W moim głównym projekcie zapełniam moją bazę danych w ten sposób:
Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.red_bn);
ByteArrayOutputStream out = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, out);
byte[] b = out.toByteArray();
String name;
name="QUEEN_BED1";
String specs = "blaBlaBla";
double price = 5420;
int qty = 10;
ItemsPojo itemsObj = new ItemsPojo(name,specs,price,b,qty);
db.AddItems(itemsObj);
Utknąłem, czy ktoś może mi pomóc odzyskać to zdjęcie i wyświetlić je w widoku siatki?