2012-07-28 92 views
1

读取图像的时候,我读了SD卡BitmapFactory图像:获取的NullPointerException()从SD卡

String myJpgPath = "/sdcard/yourdollar/img001.jpg"; 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inSampleSize = 2; 
Bitmap bm = BitmapFactory.decodeFile(myJpgPath, options); 

如果我写:

Log.i("width and height: ", bm.getWidth() + " " + bm.getHeight()); 

我得到一个空指针异常。我试图用Bitmap.createScaledBitmap()进行缩放,但我得到了同样的错误。在它之后,我正在处理位图,所以我想在最后有一个位图,它具有任何宽度或高度,因为它好像没有为位图提供参数。但是我无法调整它,所以我怎样才能得到这个图像的宽度为500,高度为500的位图?

*** UPDATE

buttonClick = (Button) findViewById(R.id.buttonClick); 
    buttonClick.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { // <5> 
     preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback); 

      Intent intentstart = new Intent(CameraActivity.this, Intent2.class); 
      startActivity(intentstart); 

     } 
    }); 

好这里的事情。这个按钮用相机拍照,然后改变活动。如果我这样做,应用程序没有时间创建,所以当我在第二个活动中使用它来读取它时,它会抛出nullpointerexception。所以我很棘手(也错了),并把:

preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback); 

try { 
     Thread.sleep(1200); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
     Intent intentstart = new Intent(CameraActivity.this, Intent2.class); 
     startActivity(intentstart); 

所以它有1.2秒创建文件,然后改变活动。有没有办法检查文件是否创建?当然,如果它是真的,那么它应该改变活动。 有什么建议吗?

+1

你的路径myJpgPath应该不会错 – SteveR 2012-07-28 12:09:32

+0

它在两部手机上工作,第三部手机投射它,所以路径是正确的。 – 2012-07-28 12:26:42

+0

其他两部手机的路径可以,但文件和目录不存在。我更新了我的问题。 – 2012-07-28 12:39:12

回答

0

首先请查看您在你的形象是否需要目录/sdcard/yourdollar/img001.jpg而且,只要尝试这样的 -

String myJpgPath = "/sdcard/yourdollar/img001.jpg"; 
Bitmap bm = BitmapFactory.decodeFile(myJpgPath); 

,并得到图像高度&宽度在logcat的

Log.i("width and height: ", bm.getWidth() + " " + bm.getHeight()); 
+0

嗯。好吧,这很奇怪。文件和目录都不存在,而我的应用程序在另外两部手机上创建它们。有没有办法检查文件是否被创建?我会更新我的问题。 – 2012-07-28 12:38:34

+0

问题已更新。 – 2012-07-28 12:44:16

+0

我接受你的答案,因为问题的根源实际上是这个。无论如何,我把意向开到另一个地方。它在try/catch块的'finally'中。 – 2012-07-28 21:57:40