【发布时间】:2014-09-22 15:20:02
【问题描述】:
这里是代码。 我试图将 Main_Activity 中的图像路径传递给这个新 Activity,但图像没有显示在 New_Activity 中。
所以我的问题是:如何通过传递 Main_Activity 的路径在 New_Activity 中显示图像?
有没有更简单的方法来做这样的事情?
如果可能,请详细说明。 也欢迎示例代码... 谢谢
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
Intent intent = getIntent();
Bundle extras = intent.getExtras();
String filename = extras.getString("map1");
FileInputStream is = null;
BufferedInputStream bis = null;
try {
is = new FileInputStream(new File(filename));
bis = new BufferedInputStream(is);
Bitmap bitmap = BitmapFactory.decodeStream(bis);
myImage = (ImageView)findViewById(R.id.imageView2);
myImage.setImageBitmap(bitmap);
}
catch (Exception e) {
//Try to recover
}
finally {
try {
if (bis != null) {
bis.close();
}
if (is != null) {
is.close();
}
} catch (Exception e) {
}
}
myImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
}
}
这里是 logcat 文件:
07-30 20:36:46.601: W/MapDbAdapter(387): 5
07-30 20:37:33.161: D/AndroidRuntime(387): Shutting down VM
07-30 20:37:33.161: W/dalvikvm(387): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
07-30 20:37:33.172: E/AndroidRuntime(387): FATAL EXCEPTION: main
07-30 20:37:33.172: E/AndroidRuntime(387): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.activity.map/com.example.activity.map.Activity2}: java.lang.NullPointerException
07-30 20:37:33.172: E/AndroidRuntime(387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
07-30 20:37:33.172: E/AndroidRuntime(387): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
07-30 20:37:33.172: E/AndroidRuntime(387): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
07-30 20:37:33.172: E/AndroidRuntime(387): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
07-30 20:37:33.172: E/AndroidRuntime(387): at android.os.Handler.dispatchMessage(Handler.java:99)
07-30 20:37:33.172: E/AndroidRuntime(387): at android.os.Looper.loop(Looper.java:123)
07-30 20:37:33.172: E/AndroidRuntime(387): at android.app.ActivityThread.main(ActivityThread.java:4627)
07-30 20:37:33.172: E/AndroidRuntime(387): at java.lang.reflect.Method.invokeNative(Native Method)
07-30 20:37:33.172: E/AndroidRuntime(387): at java.lang.reflect.Method.invoke(Method.java:521)
07-30 20:37:33.172: E/AndroidRuntime(387): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-30 20:37:33.172: E/AndroidRuntime(387): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-30 20:37:33.172: E/AndroidRuntime(387): at dalvik.system.NativeStart.main(Native Method)
07-30 20:37:33.172: E/AndroidRuntime(387): Caused by: java.lang.NullPointerException
07-30 20:37:33.172: E/AndroidRuntime(387): at com.example.activity.map.Activity2.onCreate(Activity2.java:48)
07-30 20:37:33.172: E/AndroidRuntime(387): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-30 20:37:33.172: E/AndroidRuntime(387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
07-30 20:37:33.172: E/AndroidRuntime(387): ... 11 more
这是新的 logcat 文件:
07-30 21:12:25.921: W/MapDbAdapter(493): 5 07-30 21:12:28.621: D/AndroidRuntime(493): 关闭虚拟机 07-30 21:12:28.621: W/dalvikvm(493): threadid=1: 线程以未捕获的异常退出 (group=0x4001d800) 07-30 21:12:28.631:E/AndroidRuntime(493):致命异常:主要 07-30 21:12:28.631: E/AndroidRuntime(493): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.example.activity.map/com.example.activity.map.Activity2}: java.lang 。空指针异常 07-30 21:12:28.631: E/AndroidRuntime(493): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 android.os.Handler.dispatchMessage(Handler.java:99) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 android.os.Looper.loop(Looper.java:123) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 android.app.ActivityThread.main(ActivityThread.java:4627) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 java.lang.reflect.Method.invokeNative(Native Method) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 java.lang.reflect.Method.invoke(Method.java:521) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 07-30 21:12:28.631: E/AndroidRuntime(493): at dalvik.system.NativeStart.main(Native Method) 07-30 21:12:28.631:E/AndroidRuntime(493):引起:java.lang.NullPointerException 07-30 21:12:28.631: E/AndroidRuntime(493): 在 com.example.activity.map.Activity2.onCreate(Activity2.java:29) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 07-30 21:12:28.631: E/AndroidRuntime(493): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 07-30 21:12:28.631: E/AndroidRuntime(493): ... 11 更多
错误出现在第 29 行:我明白了:这也是我的 java 代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
String filename = getIntent().getStringExtra("map1");
Bitmap bitmap = BitmapFactory.decodeFile(filename);
if (bitmap != null) {
myImage = (ImageView)findViewById(R.id.imageView2);
myImage.setImageBitmap(bitmap);
}
myImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
}
// private Bitmap getBitmapFromAsset(String strName){
// AssetManager assetManager = getAssets();
// InputStream istr = null;
// try {
// istr = assetManager.open(strName);
// } catch (IOException e) {
// e.printStackTrace();
// }
// Bitmap bitmap = BitmapFactory.decodeStream(istr);
// return bitmap;
// }
}
【问题讨论】:
-
您遇到错误了吗?
-
是的,它说空指针异常!但我不知道是什么问题!你知道它是如何工作的吗?或者任何其他教程来了解更多关于传递图像路径和在 newactivity 中显示图像的信息!提前致谢
-
你的图片在 Drawable 文件夹中吗?
-
请粘贴堆栈跟踪,这是您遇到错误时应该发布的第一件事
-
没有我的图片在资产文件夹中:为此我必须在资产文件夹中传递图片的路径。
标签: android image android-activity path