1

我使用 BitmapFactory 从 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 的位图呢?

***更新

 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 秒的时间来创建文件,然后更改活动。有什么方法可以检查文件是否创建?当然,如果它是真的,那么它应该改变活动。有什么建议吗?

4

1 回答 1

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());
于 2012-07-28T12:07:15.060 回答