Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在onActivityResult()中获取位图图像{}_Java_Android_Bitmap - Fatal编程技术网

Java 如何在onActivityResult()中获取位图图像{}

Java 如何在onActivityResult()中获取位图图像{},java,android,bitmap,Java,Android,Bitmap,我试着开发一个android应用程序,从摄像头捕获图像,然后在ImageView上显示,但每次应用程序捕获图像后,它都会崩溃。谢谢 这是我的Java代码 public class MainActivity extends ActionBarActivity { private ImageView mImageView; static final int REQUEST_IMAGE_CAPTURE = 1; @Override protected void onCre

我试着开发一个android应用程序,从摄像头捕获图像,然后在ImageView上显示,但每次应用程序捕获图像后,它都会崩溃。谢谢

这是我的Java代码

 public class MainActivity extends ActionBarActivity {
 private ImageView mImageView;
    static final int REQUEST_IMAGE_CAPTURE = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mImageView=(ImageView)findViewById(R.id.image);

      }
    public void klik(View view){
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            Bitmap imageBitmap = (Bitmap) extras.get("data");
            mImageView.setImageBitmap(imageBitmap);
        }
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
我是这样做的:

  • 创建一个临时文件来存储映像,并将路径存储在成员变量中
  • 填写相机意图的
    EXTRA_输出
    参数
  • OnActivityResult
    从以前存储的路径读取文件
  • 对于代码,它类似于:

    // 1.
    File tempFile = File.createTempFile("camera", ".png", getExternalCacheDir());
    mPath = tempFile.getAbsolutePath();
    Uri uri = Uri.fromFile(tempFile);
    
    // 2.
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
    startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
    
    // 3.
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inPreferredConfig = Bitmap.Config.ARGB_8888;
        Bitmap bitmap = BitmapFactory.decodeFile(mPath, options);
    
        mImageView.setImageBitmap(bitmap);
    }