【发布时间】:2018-11-25 03:10:43
【问题描述】:
我正在使用 Android Image Cropper Android Image Cropper。 我已经有以下代码,可以从画廊或相机中选择图像,https://github.com/ArthurHub/Android-Image-Cropper/wiki/Pick-image-for-cropping-from-Camera-or-Gallery。
这是我当前的代码:
MainActivity.java:
public class MainActivity extends AppCompatActivity {
private Button changeImageButton;
private Uri mCropImageUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
changeImageButton = (Button)findViewById(R.id.changeImage);
changeImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onSelectImageClick(v);
}
});
}
@Override
@SuppressLint("NewApi")
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// handle result of pick image chooser
if (requestCode == CropImage.PICK_IMAGE_CHOOSER_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
Uri imageUri = CropImage.getPickImageResultUri(this, data);
// For API >= 23 we need to check specifically that we have permissions to read external storage.
if (CropImage.isReadExternalStoragePermissionsRequired(this, imageUri)) {
// request permissions and handle the result in onRequestPermissionsResult()
mCropImageUri = imageUri;
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, CropImage.PICK_IMAGE_PERMISSIONS_REQUEST_CODE);
} else {
// no permissions required or already granted, can start crop image activity
startCropImageActivity(imageUri);
}
}
}
public void onSelectImageClick(View view) {
CropImage.startPickImageActivity(this);
}
private void startCropImageActivity(Uri imageUri) {
CropImage.activity(imageUri).setCropShape(CropImageView.CropShape.RECTANGLE).setFixAspectRatio(true)
.start(this);
}
}
这是activity_main xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/changeImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="Change Image"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.501"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
效果很好,当我单击按钮时,会出现一个对话框,询问我要从哪里拍摄图像:图库、相机、文件等。当我选择其中任何一个时,我会进入裁剪活动。但是在我点击裁剪后,什么也没有发生。如何在现有代码中获取裁剪后的图像,并将其设置为方形图像视图,例如 150x150dp 大小。我不知道应该使用什么回调来保存裁剪/旋转的图像?因为这个裁剪器似乎将几个 API 版本混合在一起,所以我很困惑我需要如何做到这一点。帮助将不胜感激
【问题讨论】:
标签: android