三星设备的Android CROP错误

时间:2012-09-17 16:26:19

标签: android bitmap android-camera crop

我正在开发一款应用,我拍照并剪裁......

这是我的全部代码:

            // keep track of camera capture intent
final int CAMERA_CAPTURE = 1;
// keep track of cropping intent
final int PIC_CROP = 2;
// captured picture uri
private Uri picUri;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.shadows_photo);

    // retrieve a reference to the UI button
    Button captureBtn = (Button) findViewById(R.id.capture_btn);
    // handle button clicks
    captureBtn.setOnClickListener(this);
}

/**
 * Click method to handle user pressing button to launch camera
 */
public void onClick(View v) {
    if (v.getId() == R.id.capture_btn) {
        try {
            // use standard intent to capture an image
            Intent captureIntent = new Intent(
                    MediaStore.ACTION_IMAGE_CAPTURE);
            // we will handle the returned data in onActivityResult
            startActivityForResult(captureIntent, CAMERA_CAPTURE);
        } catch (ActivityNotFoundException anfe) {
            // display an error message
            String errorMessage = "Whoops - your device doesn't support capturing images!";
            Toast toast = Toast.makeText(this, errorMessage,
                    Toast.LENGTH_SHORT);
            toast.show();
        }
    }
}

/**
 * Handle user returning from both capturing and cropping the image
 */
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        // user is returning from capturing an image using the camera
        if (requestCode == CAMERA_CAPTURE) {
            // get the Uri for the captured image
            picUri = data.getData();
            // carry out the crop operation
            performCrop();
        }
        // user is returning from cropping the image
        else if (requestCode == PIC_CROP) {
            // get the returned data
            Bundle extras = data.getExtras();
            // get the cropped bitmap
            Bitmap thePic = extras.getParcelable("data");
            // retrieve a reference to the ImageView
            ImageView picView = (ImageView) findViewById(R.id.picture);
            // display the returned cropped image
            picView.setImageBitmap(thePic);
        }
    }
}

/**
 * Helper method to carry out crop operation
 */
private void performCrop() {
    // take care of exceptions
    try {
        // call the standard crop action intent (the user device may not
        // support it)
        Intent cropIntent = new Intent("com.android.camera.action.CROP");
        // indicate image type and Uri
        cropIntent.setDataAndType(picUri, "image/*");
        // set crop properties
        cropIntent.putExtra("crop", "true");
        // indicate aspect of desired crop
        cropIntent.putExtra("aspectX", 1);
        cropIntent.putExtra("aspectY", 1);
        // indicate output X and Y
        cropIntent.putExtra("outputX", 256);
        cropIntent.putExtra("outputY", 256);
        // retrieve data on return
        cropIntent.putExtra("return-data", true);
        // start the activity - we handle returning in onActivityResult
        startActivityForResult(cropIntent, PIC_CROP);
    }
    // respond to users whose devices do not support the crop action
    catch (ActivityNotFoundException anfe) {
        // display an error message
        String errorMessage = "Whoops - your device doesn't support the                   crop action!";
        Toast toast = Toast
                .makeText(this, errorMessage, Toast.LENGTH_SHORT);
        toast.show();
    }
      }
       }

嗯......在这个设备中:HTC ONE X,Wildfir,XPERIA S工作正常,但在三星设备中,我看不到de“crop area”和应用程序关闭。

很奇怪......

谢谢,抱歉我的英语不好......

0 个答案:

没有答案