【发布时间】:2023-04-10 10:40:02
【问题描述】:
我正在从图库中裁剪图像,但无法在imageView 中设置该裁剪图像,最终图像设置为默认图像我的意思是没有裁剪所以如何在ImageView 中设置裁剪图像
这是来自图库的图片选择器
newPostImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
galIntent=new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(Intent.createChooser(galIntent,"select image"),2);
}
});
这是用于裁剪图像
private void CropImage() {
try {
CropIntent = new Intent("com.android.camera.action.CROP");
CropIntent.setDataAndType(postImageUri,"image/*");
CropIntent.putExtra("crop","true");
CropIntent.putExtra("outputX",180);
CropIntent.putExtra("outputY",180);
CropIntent.putExtra("aspectX",3);
CropIntent.putExtra("aspectY",4);
CropIntent.putExtra("scaleUpIfNeeded",true);
CropIntent.putExtra("return-data",true);
startActivityForResult(CropIntent,1);
}
catch (ActivityNotFoundException ex)
{
}
}
这是 onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0&&resultCode ==RESULT_OK)
CropImage();
if (requestCode==2){
if (data!=null){
postImageUri=data.getData();
CropImage();
newPostImg.setImageURI(postImageUri);
}
}
}
这是我的许可
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA"/>
这是 imageView xml
<ImageView
android:layout_margin="10dp"
android:id="@+id/newPostImg"
android:layout_width="match_parent"
android:layout_height="250dp"
android:src="@drawable/default1" />
【问题讨论】:
-
你没有使用裁剪意图的结果。此外,设备完全不需要
com.android.camera.action.CROP动作处理程序,所以你不应该依赖它 -
处理 requestCode = 1 的结果。
-
使用this进行图像裁剪。
-
@AbhayKoradiya..in 哪个请求代码必须为 1?