Android 第二个活动中未显示来自摄像头的图片

Android 第二个活动中未显示来自摄像头的图片,android,android-activity,camera,imageview,Android,Android Activity,Camera,Imageview,我很抱歉来寻求别人的帮助,但我已经被这个问题困扰了一段时间,它让我发疯 我正试着从MainActivity拍摄一个按钮,它会把你放进相机并拍照。然后,它会带您进入下一个活动,在那里会预览同一张图像。但每当我到达下一个活动时,图像都不会显示,只是一个占位符。我做错了什么?我在代码中遗漏了什么吗 我一直在四处寻找并尝试使用Uri,但显然它不再被允许,因为您需要为该操作授予特定权限,因此建议使用FileProvider,但老实说,对于像我这样的初学者来说,这有点太难了。我试了好几个小时,还是失败了 主

我很抱歉来寻求别人的帮助,但我已经被这个问题困扰了一段时间,它让我发疯

我正试着从MainActivity拍摄一个按钮,它会把你放进相机并拍照。然后,它会带您进入下一个活动,在那里会预览同一张图像。但每当我到达下一个活动时,图像都不会显示,只是一个占位符。我做错了什么?我在代码中遗漏了什么吗

我一直在四处寻找并尝试使用Uri,但显然它不再被允许,因为您需要为该操作授予特定权限,因此建议使用FileProvider,但老实说,对于像我这样的初学者来说,这有点太难了。我试了好几个小时,还是失败了

主要活动

public class MainActivity extends AppCompatActivity {

int CAPTURE_REQUEST;
Button button;
Bitmap thumbnail;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.button);

    button.setOnClickListener(new Button.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(cameraIntent, CAPTURE_REQUEST);
        }

    });
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if (requestCode == CAPTURE_REQUEST) {
            Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
            sendImage();
        }
    }
}


private void sendImage() {
    Intent intent = new Intent(MainActivity.this, NextActivity.class);
    intent.putExtra("image", thumbnail);
    startActivity(intent);
}}
下触觉

public class NextActivity extends AppCompatActivity {

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

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        Bitmap image = (Bitmap) extras.get("image");
        if (image != null) {
            imageView.setImageBitmap(image);
        }
    }
}}

将ActivityResult更改为

super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
    if (requestCode == CAPTURE_REQUEST) {
        thumbnail = (Bitmap) data.getExtras().get("data");
        sendImage();
    }
}

您正在使用局部声明重写全局变量

更改活动结果为

super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
    if (requestCode == CAPTURE_REQUEST) {
        thumbnail = (Bitmap) data.getExtras().get("data");
        sendImage();
    }
}

您正在使用局部声明重写全局变量

在函数sendImage()中,它是否包含正确的图像?我相信是这样。但我必须承认,Android研究告诉我,当我声明位图缩略图=(位图)yada yada时,它从未在其他任何地方使用过,即使我在函数sendImage()的sendImage()中使用它,它是否包含正确的图像?我相信是这样的。但我必须承认,Android研究告诉我,当我声明位图缩略图=(位图)yada-yada时,它从未在其他任何地方使用过,即使我在sendImage()中使用过它