android simplecursoradapter с imageView

Я хочу видеть с помощью simplecursoradapter и встроенного ListView список моих контактов, показывающий их имя, адрес электронной почты и изображение (все сохранено в sqlite)

имея этот код (обратите внимание, что я не использую курсор, я использую null, потому что я собираюсь предоставить курсор позже):

private CursorAdapter contactAdapter;
    @Override
       public void onCreate(Bundle savedInstanceState) 
       {
          super.onCreate(savedInstanceState); 
          contactList = getListView(); 
          contactList.setOnItemClickListener(viewContactListener);      


          String[] from = new String[] { "name","email","image" };
          int[] to = new int[] { R.id.contactTextView,R.id.emailTextView2,R.id.imageView1};//imageView1 is a ImageView
          contactAdapter = new SimpleCursorAdapter(
             MyFirstActivity.this, R.layout.contact_list_item, null, from, to);

          setListAdapter(contactAdapter);



       }

а потом:

@Override
   protected void onResume() 
   {
      super.onResume();
      new StartPopulate().execute((Object[]) null);
    } 


private class StartPopulate extends AsyncTask<Object, Object, Cursor> 
   {
      MyDatabaseConnector myDatabaseConnector = 
         new MyDatabaseConnector(myActivity.this);

      // perform the database access
      @Override
      protected Cursor doInBackground(Object... params)
      {
         myDatabaseConnector.open();

         return databaseConnector.getAllContacts(); //it is a cursor where I have the fields which I want to return
      }


      @Override
      protected void onPostExecute(Cursor result)
      {
         contactAdapter.changeCursor(result);
         myDatabaseConnector.close();
      } 
   } 

если вы заметили, я предоставляю курсор внутри onPostExecute с помощью changeCursor, а не в начале. Итак, мои вопросы: 1. Как я могу использовать viewBinder таким образом?? Изображения в SimpleCursorAdapter Я хочу добавить изображение внутрь (int[] to = new int[] { R.id.contactTextView,R.id.emailTextView2,R .id.imageView1};//imageView1 - это ImageView), поэтому таким образом я могу видеть имя, адрес электронной почты, изображение

Также в моей базе данных есть следующие поля:

"CREATE TABLE wholeContacts" +
            "(_id integer primary key autoincrement," +
            "name TEXT, email TEXT, +
            "image BLOB);";

2. Рекомендуется использовать sqlite для сохранения изображений (внутри базы данных), если они могут содержать почти 5000 записей, но изображения имеют размер 2,6 КБ (очень маленькие изображения)???? Благодарность


person user2580401    schedule 17.10.2013    source источник


Ответы (1)


используйте BitmapFactory.decodeByteArray, где массив байтов берется из Cursor.getBlob()

person pskink    schedule 17.10.2013