2012-02-20 3 views
1

Мне нужно показать изображения из базы данных sqlite в виде сетки или галереи.
это код для отображения на один вид: Просмотр галереи Android с изображениями, сохраненными в sqlite как blob

mMain = (ImageView) findViewById(R.id.ivMain); 
byte[] blob = imgs.getBytes(); //there is a method that will return the bytes from the database 
ByteArrayInputStream inputStream = new ByteArrayInputStream(blob); 
Bitmap bitmap = BitmapFactory.decodeStream(inputStream); 
mMain.setImageBitmap(bitmap); 

У меня есть андроид учебник для просмотра сетки, но он получает изображение из файла

// references to our images 
private Integer[] mThumbIds = { 
R.drawable.sample_2, R.drawable.sample_3 
... } 

есть способ для заполнения gridview из базы данных sqlite?

UPDATE:
Im помощью ImageAdapter обеспечить в андроида учебнике:
http://developer.android.com/resources/tutorials/views/hello-gridview.html
мой код становится это:

ArrayList<byte[]> image_arr = new ArrayList<byte[]>(); 
//loop through all images on sqlite 
for(int l = 0 ;l< db.getAllImages().size(); l++){ 
    Image imgs = db.getAllImages().get(l); 
    byte[] blob = imgs.getBytes(); 
    image_arr.add(blob); 

    ByteArrayInputStream inputStream = new ByteArrayInputStream(blob); 
    Bitmap bitmap = BitmapFactory.decodeStream(inputStream); 
    // mMain.setImageBitmap(bitmap); 
} 
//TODO; find way to make the bitmap get to the ImageView 

Gallery gallery = (Gallery) findViewById(R.id.gallery); 
gallery.setAdapter(new ImageAdapter(this)); 

Этот код находится на основной деятельности, поэтому мне нужно найти способ, чтобы пройти ресурсы в ImageView, которые находятся в другом файле.

ответ

0
private void getDataAndPopulate() { 

    image = new ArrayList<byte[]>(); 
    caption = new ArrayList<String>(); 

    cursor=db.rawQuery("select * from NAME",null); 


    while (cursor.moveToNext()) { 

     byte[] temp_image = cursor.getBlob(2); 
     String temp_caption = cursor.getString(1); 
     String temp_id= cursor.getString(0); 
     image.add(temp_image); 
     caption.add(temp_caption); 
     id.add(temp_id); 
    } 
    String[] captionArray = (String[]) caption.toArray(
      new String[caption.size()]); 

    ItemsAdapter itemsAdapter = new ItemsAdapter(Item_show_grid.this, R.layout.item_grid,captionArray); 
    gv.setAdapter(itemsAdapter); 

} 
+0

ничего себе, это было быстро! я сразу проверю. спасибо за отзыв –

+0

спасибо @aashutosh, ArrayList image = new ArrayList (); идея помогает мне обрабатывать массив байтов, это будет передано в ItemsAdapter, но, пожалуйста, объясните больше этого элементаAdapter. В настоящее время я использую образец адаптера: http://developer.android.com/resources/tutorials/views/hello-gridview .html –

Смежные вопросы