ImageView - загрузка картинки из SDCARD
Добавлено: 04 авг 2013, 13:52
Написал класс который отображает в ImageView картинку которая лежит в SDCARD.
Все проверял, путь к файлу в порядке, формирование Bitmam - нет ошибки....
Ошибка возникает на этом шаге: pic.setImageBitmap(bm);
Вот лог:
В чем здесь проблема?
Код: Выделить всё
public class ShowPictureInSD {
public static String ROOT_DIR="mydir";
public Bitmap ShowPicture(String fileName, String contentType, String id, ImageView pic) {
File dir = new File(Environment.getExternalStorageDirectory() + File.separator + ROOT_DIR + File.separator + contentType + File.separator + id);
dir.mkdirs();
File f = new File (dir, fileName+".png");
Log.d("ShowPictureInSD", "Поиск картинки: "+f.getAbsolutePath());
if (f.exists()){
Bitmap bm = BitmapFactory.decodeFile(f.getAbsolutePath());
pic.setImageBitmap(bm);
}else{
Log.d("ShowPictureInSD", "Картинка ненайдена!");
return null;
}
return null;
}
}Ошибка возникает на этом шаге: pic.setImageBitmap(bm);
Вот лог:
Код: Выделить всё
07-17 04:28:54.488: D/ShowPictureInSD(23003): Поиск картинки: /mnt/sdcard/HomeAndroid/app/1806/1371276396440921M.png
07-17 04:28:54.618: D/dalvikvm(23003): GC_CONCURRENT freed 224K, 4% free 8212K/8519K, paused 152ms+22ms, total 251ms
07-17 04:28:54.628: D/dalvikvm(23003): WAIT_FOR_CONCURRENT_GC blocked 37ms
07-17 04:28:54.688: W/dalvikvm(23003): threadid=12: thread exiting with uncaught exception (group=0x40a13300)
07-17 04:28:54.738: E/AndroidRuntime(23003): FATAL EXCEPTION: Thread-3679
07-17 04:28:54.738: E/AndroidRuntime(23003): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4609)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:835)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.View.requestLayout(View.java:15129)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.View.requestLayout(View.java:15129)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.View.requestLayout(View.java:15129)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.View.requestLayout(View.java:15129)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:292)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.View.requestLayout(View.java:15129)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.widget.ScrollView.requestLayout(ScrollView.java:1419)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.View.requestLayout(View.java:15129)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.View.requestLayout(View.java:15129)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.View.requestLayout(View.java:15129)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.view.View.requestLayout(View.java:15129)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.widget.ImageView.setImageDrawable(ImageView.java:401)
07-17 04:28:54.738: E/AndroidRuntime(23003): at android.widget.ImageView.setImageBitmap(ImageView.java:416)
07-17 04:28:54.738: E/AndroidRuntime(23003): at com.net.homeandroid.ShowPictureInSD.ShowPicture(ShowPictureInSD.java:23)
07-17 04:28:54.738: E/AndroidRuntime(23003): at com.net.homeandroid.Main$1.run(Main.java:89)