开发者

Android - Problem getting image uri

开发者 https://www.devze.com 2023-03-19 03:18 出处:网络
like the title says my problem concerns the image uri of images taken by the camera. Uri is always null ... WHY?

like the title says my problem concerns the image uri of images taken by the camera. Uri is always null ... WHY?

@Override
public void onClick(View v) {

    Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);          
    startActivityForResult(cameraIntent, TAKE_PICTURE); 


@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){

        if (requestCode == TAKE_PICTURE)
        {
            //Uri contentURI = Uri.parse(data.getDataString());
            thumbnail = (Bitmap) data.getExtras().get("data");
            ImageView image = (ImageView) findViewById(R.id.photoResultView);  
            image.setImageBitmap(thumbnail);

                photoUri = data.getData();
                Log.e("FOTOLO开发者_运维问答G",""+ photoUri);


        }
    }


Look at this,

Android ACTION_IMAGE_CAPTURE Intent

might provide you with some insight.

public void startCamera() {

    File photo = null;
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    if (android.os.Environment.getExternalStorageState().equals(
            android.os.Environment.MEDIA_MOUNTED)) {
        photo = new File(android.os.Environment
                .getExternalStorageDirectory(), FILE_NAME);
    } else {
        photo = new File(getCacheDir(), FILE_NAME);
    }    
    if (photo != null) {
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
        selectedImageUri = Uri.fromFile(photo);
        startActivityForResult(intent, IMAGE_CAPTURE);
    }
}


public void onActivityResult(int requestCode, int resultCode, Intent data) {

     if (requestCode == IMAGE_CAPTURE) {

        if (resultCode == Activity.RESULT_OK) {

            try {
                Uri selectedImage = selectedImageUri;
                //getContentResolver().notifyChange(selectedImage, null);
                ContentResolver cr = getContentResolver();
                Bitmap bitmap;
                bitmap = android.provider.MediaStore.Images.Media
                        .getBitmap(cr, selectedImage);
                rptImage.setImageBitmap(bitmap);

            } catch (Exception e) {
                Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT)
                        .show();
                Log.e("Camera", e.toString());
            }

        } else {
            selectedImageUri = null;
            rptImage.setImageBitmap(null);
        }

    } 

}

That's a code sample from my application.

You need the permission,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
0

精彩评论

暂无评论...
验证码 换一张
取 消