2013-06-12 2 views
1

Я пытаюсь установить imageView из Uri (в столбце базы данных sqlite), возвращенного курсором, но не работает.установка imageView from cursor

Код:

mCursor = mydb.rawQuery("select * from events;", null); 
if (mCursor != null) { 
    mCursor.moveToFirst(); 

String[] from = new String[]{DbHandler.column_id, DbHandler.column_name, DbHandler.column_location, DbHandler.column_date, DbHandler.img_loc}; 
int[] to = new int[] {R.id.textView1, R.id.textView2, R.id.textView3, R.id.textView4, R.id.photoInDb}; 
SimpleCursorAdapter simpleCurs = new SimpleCursorAdapter(this, R.layout.listviewfinal, mCursor, from, to); 
simpleCurs.setViewBinder(new SimpleCursorAdapter.ViewBinder() { 
       @Override 
       public boolean setViewValue(View view, Cursor cursor, int i) { 

       if (view instanceof ImageView) { 

        ImageView image = (ImageView) view; 
        // just to see what is returned by this! 
        Log.d("orange", "images: " + cursor.getString(i)); 
        Bitmap thumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(cursor.getString(i)), 320, 240); 
        image.setImageBitmap(thumbImage); 
        return true; 
       } 
       return false; 
       } 
      }); 
      listView.setAdapter(simpleCurs); 

какие-либо идеи?

+0

Вы ge tting URL-адрес изображения из базы данных? –

+0

есть. есть столбец с фотографией Uri, который сохраняется на SD-карте. строка Log.d возвращает «images: file: ///storage/sdcard0/DCIM/OrangeClubPhotos/1370853592867.jpg» - и файл существует. поэтому проблема заключается в том, что он не устанавливает файлы в изображениях. – kevoroid

ответ

1

Пробуйте этот код, он должен работать, если вы правильно определяете путь изображения.

Bitmap thumbImage = BitmapFactory.decodeFile(imagePath); 
image.setImageBitmap(thumbImage); 

EDIT:

Я думаю, что у вас возникли некоторые проблемы с получением путь к изображению. Чтобы получить путь, сделайте следующее.

String imagePath= Environment.getExternalStorageDirectory().toString() "folderpath/imageaname.jpg"; 

В вашем случае путь_к_папке является DCIM/OrangeClubPhotos/ и имя изображения 1370853592867.jpg

+0

попробовали это и не повезло. путь находится в DbHandler.img_loc, который должен быть установлен в R.id.photoInDb с помощью метода setViewValue. проблема должна быть где-то в setViewValue! – kevoroid

+0

спасибо за код, но путь к нему не является статическим. одно изображение в строке в базе данных, которое должно быть присвоено представлению в виде списка вместе с его другими 4 текстовыми изображениями. – kevoroid

0

Writer эти простые линии

URL url = new URL("http://image10.bizrate-images.com/resize?sq=60&uid=2216744464"); 
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
imageView.setImageBitmap(bmp); 

или попробовать этот

File imgFile = new File(“/sdcard/Images/test_image.jpg”); 
if(imgFile.exists()){ 

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 

    ImageView myImage = (ImageView) findViewById(R.id.imageviewTest); 
    myImage.setImageBitmap(myBitmap); 

} 
+0

Это полезный фрагмент, но мне не нужен. Я не хочу показывать другую фотографию в моем изображении. У меня есть путь к моим фотографиям, возвращаемым курсором. просто захотите загрузить их в режиме просмотра изображений. – kevoroid

+0

вам просто нужно заменить данный путь на нужный путь –

+0

да, и я пытаюсь понять, что является правильным путем в соответствии с моим кодом выше. Есть идеи? – kevoroid