我想从图库中选择图像并将其裁剪为800 * 600尺寸,但尺寸大于500 * 500则无法正常工作!!我怎么能这样做?
我的代码如下:
head(inputd$Semaine_lundi, n=20)
[1] "-1-12-09 00:13:36 LMT" "-1-12-16 00:13:36 LMT" "-1-12-16 00:13:36 LMT" "-1-12-23 00:13:36 LMT"
[5] "-1-12-30 00:13:36 LMT" "-1-12-06 00:13:36 LMT" "-1-12-13 00:13:36 LMT" "-1-12-20 00:13:36 LMT"
[9] "-1-12-27 00:13:36 LMT" "-1-12-30 00:13:36 LMT" "-1-12-30 00:13:36 LMT" "-1-12-30 00:13:36 LMT"
[13] "-1-12-30 00:13:36 LMT" "-1-12-30 00:13:36 LMT" "-1-12-30 00:13:36 LMT" "-1-12-07 00:13:36 LMT"
[17] "-1-12-07 00:13:36 LMT" "-1-12-07 00:13:36 LMT" "-1-12-07 00:13:36 LMT" "-1-12-07 00:13:36 LMT"
答案 0 :(得分:2)
试试这个,它适合我,希望它也会帮助你....
1 - 从图库中选择图片
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent, "Select File"),Util.REQUEST_GALLERY);
2 - 在onActivityResult中裁剪图像,如下所示
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == getActivity().RESULT_OK) {
switch (requestCode) {
case Util.REQUEST_GALLERY:
try {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) && !Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED_READ_ONLY)) {
File file = new File(Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()
+ File.separator+ ".MyImages"+ File.separator+ "picture").getPath());
if (!file.exists()) {
file.mkdirs();
}
selectedPath1 = File.createTempFile("myImages"+ new SimpleDateFormat("ddMMyyHHmmss",Locale.US).format(new Date()),".jpg", file).toString();
croppedImageUri = Uri.fromFile(new File(selectedPath1));
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(data.getData(), "image/*");
intent.putExtra("outputX", 700); // pass width
intent.putExtra("outputY", 700); // pass height
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("scale", true);
intent.putExtra("noFaceDetection", true);
intent.putExtra("output", croppedImageUri);
startActivityForResult(intent, Util.REQUEST_CROP_IMAGE);
} else {
Toast.show(getActivity(), "Please insert memory card to take pictures and make sure it is writeable");
}
} catch (Exception e) {
e.printStackTrace();
}
break;
case Util.REQUEST_CROP_IMAGE:
Logg.e(getClass().getSimpleName(), "Profile_Pic ===== " + selectedPath1);
imgProfile.setImageURI(Uri.parse("file://" + croppedImageUri));
break;
default:
break;
}
}
}