2012-05-24 4 views
0

Я хочу показать картинку с моего внутреннего хранилища.Показать изображение на экране из внутреннего хранилища

Вот мой код:

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(getFilesDir()+"/screen.bmp"), "image/*"); 
startActivity(intent); 

Это не работает. Ошибка приложения с ошибкой на logcat. Я проверил, что файл существует.

EDIT 1: Я думаю, что у меня была проблема с логарифмом. теперь у меня есть исключение NullPointerException.

05-26 21:09:13.560: E/AndroidRuntime(10163): FATAL EXCEPTION: main 
05-26 21:09:13.560: E/AndroidRuntime(10163): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.gallery/com.android.camera.ViewImage}: java.lang.NullPointerException 
05-26 21:09:13.560: E/AndroidRuntime(10163): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1768) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at android.os.Looper.loop(Looper.java:130) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at android.app.ActivityThread.main(ActivityThread.java:3835) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at java.lang.reflect.Method.invokeNative(Native Method) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at java.lang.reflect.Method.invoke(Method.java:507) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at dalvik.system.NativeStart.main(Native Method) 
05-26 21:09:13.560: E/AndroidRuntime(10163): Caused by: java.lang.NullPointerException 
05-26 21:09:13.560: E/AndroidRuntime(10163): at com.android.camera.MenuHelper.isWhiteListUri(MenuHelper.java:151) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at com.android.camera.ViewImage.onCreate(ViewImage.java:617) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-26 21:09:13.560: E/AndroidRuntime(10163): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722) 
+0

держите попытку поймать это, и проверьте со стеком трассировку ... отправьте сообщение об ошибке здесь – Ponmalar

+0

Я обновляю свой пост с помощью трассировки стека – 113408

ответ

0

Я отвечаю на мой собственный вопрос:

Раствор для NullPointerException:

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
Uri hacked_uri = Uri.parse("file://"+Environment.getExternalStorageDirectory()+"screen.bmp"); 
intent.setDataAndType(hacked_uri, "image/*"); 
startActivity(intent); 

Надежда это помочь другим!

+0

этот трюк работает на 4.0 и выше, но не на 2.3 и ниже. – znat

0

Проверьте с этим,

// Launch default viewer for the file 
Intent intent = new Intent(); 
String path = getFilesDir().getAbsolutePath() + "/screen.bmp";     
intent.setAction(android.content.Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(path),"image/*"); 
startActivity(intent); 
+0

это то же самое, что и я. – 113408

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