当我点击按钮时,它会转到画廊来选择图像,但只要我选择图像,它就会返回到没有裁剪的活动。此外,图像不会显示在imageView中。
这是我的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
imgview = (ImageView) findViewById(R.id.imageView1);
Button buttonCamera = (Button) findViewById(R.id.btn_take_camera);
Button buttonGallery = (Button) findViewById(R.id.btn_select_gallery);
buttonCamera.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 150);
try {
intent.putExtra("return-data", true);
startActivityForResult(intent, PICK_FROM_CAMERA);
} catch (ActivityNotFoundException e) {
}
}
});
buttonGallery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 150);
try {
intent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(intent,
"Complete action using"), PICK_FROM_GALLERY);
} catch (ActivityNotFoundException e) {
}
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_FROM_CAMERA) {
Bundle extras = data.getExtras();
if (extras != null) {
Bitmap photo = extras.getParcelable("data");
imgview.setImageBitmap(photo);
}
}
if (requestCode == PICK_FROM_GALLERY) {
Bundle extras2 = data.getExtras();
if (extras2 != null) {
Bitmap photo = extras2.getParcelable("data");
imgview.setImageBitmap(photo);
}
}
}
}
答案 0 :(得分:0)
但它返回活动而没有裁剪
这是因为任何地方都不需要任何活动来兑现那些随机Intent
额外内容,更不用说用户为您的特定请求选择的任何活动(基于他们的设备并安装ACTION_IMAGE_CAPTURE
和{ {1}}活动)。您会注意到ACTION_GET_CONTENT
或ACTION_IMAGE_CAPTURE
上没有记录这些额外内容。
有很多image cropping libraries available for Android。使用一个。
此图像也不会显示在imageView中。
这是因为ACTION_GET_CONTENT
不会通过ACTION_GET_CONTENT
data
额外内容返回任何内容。使用Intent
返回的Uri
{通过ACTION_GET_CONTENT
通过getData()
获得Intent
。将onActivityResult()
提供给您最喜欢的图像加载库(Picasso,Universal Image Loader等)。