API 25图像捕获

时间:2017-06-02 02:48:11

标签: java android image api gallery

我正在API级别23上构建我的应用程序,然后我将API级别更改为25,相同的代码现在无法正常工作,这里是我的代码:

public class expert extends Activity implements View.OnClickListener {
            Button btnsetwall;
            ImageButton imgbtntakeph;
            ImageView Imview;
            static final int REQUEST_IMAGE_CAPTURE = 1;

            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_expert);
                Imview = (ImageView) findViewById(R.id.imageView22);
                btnsetwall = (Button) findViewById(R.id.button2);
                btnsetwall.setOnClickListener(this);
            }

            @Override
            public void onClick(View v) {
                        dispatchTakePictureIntent();
            }

            private void dispatchTakePictureIntent() {
                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) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            Bitmap imageBitmap = (Bitmap) extras.get("data");

            Imview.setImageBitmap(imageBitmap);

            // CALL THIS METHOD TO GET THE URI FROM THE BITMAP
            Uri tempUri = getImageUri(getApplicationContext(), imageBitmap);

            // CALL THIS METHOD TO GET THE ACTUAL PATH
            Toast.makeText(getBaseContext(),"Here "+ getRealPathFromURI(tempUri),                 Toast.LENGTH_LONG).show();
        }
    }

    public Uri getImageUri(Context inContext, Bitmap inImage) {
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
        String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
        return Uri.parse(path);
    }

    public String getRealPathFromURI(Uri uri) {
        Cursor cursor = getContentResolver().query(uri, null, null, null, null);
        cursor.moveToFirst();
        int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
        return cursor.getString(idx);
    }

当我尝试从图库中选择图像或获取捕获的图像时,我的应用程序崩溃并且我得到UriString异常 可以任何人说出原因吗?以及如何解决! 提前谢谢

0 个答案:

没有答案