SamSung Galaxy S4 中的相机问题

Camera Issue in SamSung Galaxy S4

我正在捕捉图像,它在其他设备上显示得很好,但是当我点击 Samsung Galaxy S4 时,它没有显示在 ReyclerView 中,而是显示在它的占位符中。我想显示我点击图片的预览。我所做的,如下所示。

if (requestCode == CAMERA_REQUEST) {
        try {
            if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK && null != data) {
                String[] projection = {MediaStore.Images.Media.DATA};
                Cursor cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                        projection, null, null, null);
                int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToLast();

                img_Decodable_Str = cursor.getString(column_index_data);

                stream_imagePath.add(img_Decodable_Str);
                CreateStreamAdapter createStreamAdapter = new CreateStreamAdapter(getApplicationContext(), stream_imagePath);
                recycler_view.setAdapter(createStreamAdapter);
                createStreamAdapter.notifyDataSetChanged();
                dialog.dismiss();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

我想你可以试试这个

   Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

                pic = new File(Environment.getExternalStorageDirectory(),
                        "image name") + ".jpg");

                picUri = Uri.fromFile(pic);

                cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, picUri);

                cameraIntent.putExtra("return-data", true);
                startActivityForResult(cameraIntent, PHOTO);

经过几次修改,终于得到了我的输出。

我做的就是这里,

首先,我通过覆盖下面的 onSaveInstanceStatelike 将我的数据存储到 BUndle

 @Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putStringArrayList("savedList", stream_imagePath);
    System.out.println("On Saved Called ");
    Log.d("SAVED ", "onSaveInstanceState: ");
}

现在,在捕获它之后,我从 ArrayList 获取所有这些图像

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    View v = getLayoutInflater().inflate(R.layout.activity_create_stream, null);
    setContentView(v);
    activity = CreateStreamActivity.this;
    init(v);


    if (savedInstanceState != null) {
        stream_imagePath = savedInstanceState.getStringArrayList("savedList");
        createStreamAdapter = new CreateStreamAdapter(getApplicationContext(), stream_imagePath);
        recycler_view.setAdapter(createStreamAdapter);
    }