2012-07-03 5 views
0

Я пытаюсь сделать так, чтобы виджет показывал изображение, сохраненное на SD-карте. до сих пор я нашел это:Как получить изображение с SD-карты, чтобы отобразить изображение в виде виджета?

String imageInSD = String.format("/sdcard/facepalm%d.jpeg", counter%10);  
Bitmap bitmap = BitmapFactory.decodeFile(imageInSD); 
remoteViews.setBitmap(R.id.imageview1, "setImageBitmap", bitmap); 
ImageView myImageView = (ImageView)findViewById(R.id.imageview1); 
myImageView.setImageBitmap(bitmap); 

Прокомментированная строка приводит к сбою виджета по какой-либо причине. Я просто хочу найти способ сделать эту работу.

+1

жестко прописывать расположение вашего изображения к '/ sdcard' это не очень хорошая идея. Во многих новых устройствах sdcard монтируется под '/ emmc' –

+0

, может быть полезно добавить, что я совершенно новичок в android, поэтому ... я даже не знаю, что делает im ... –

+0

OP, I предложите вам ознакомиться с основами и основными принципами этого, прежде чем приступать к этому, иначе вы просто расстроены и сдадитесь. Там много ресурсов, на самом деле, я рекомендую серии Commonsware, чтобы дать вам обзор Android, основы Java и т. Д. :) – t0mm13b

ответ

0

попытка, как нет необходимости декодировать изображение в Bitmap, просто получить URI изображения от пути изображения:

File tempFile = new File(Environment.getExternalStorageDirectory()+"/XX/facepalm%d.jpeg"); 
Uri imgUri=Uri.fromFile(tempFile); 
ImageView imageView=(ImageView)findViewById(R.id.imageuri); 
imageView.setImageURI(imgUri); 
+0

, это решило его, и я благодарю вас, хотя я точно не использовал его все. Я использовал только Файл tempFile = new File (Environment.getExternalStorageDirectory() + "/ XX/facepalm% d.jpeg") ; Uri imgUri = Uri.fromFile (tempFile); –

0

Проверьте следующий код:

Bitmap bitmap = null; 
    Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 
    if(isSDPresent) 
    { 
     String pathOfImageInSD = Environment.getExternalStorageDirectory()+"/"+"facepalm.png"; 
     bitmap = BitmapFactory.decodeFile(pathOfImageInSD); 
    } 
ImageView myImageView = (ImageView)findViewById(R.id.imageview1); 
myImageView.setImageBitmap(bitmap);