gpt4 book ai didi

android - 添加 Pickimage,使用 1 :4 & Replace drawab. 图像裁剪 - 如何?

转载 作者:行者123 更新时间:2023-11-30 01:43:15 28 4
gpt4 key购买 nike

我正在尝试按 1:4 添加具有裁剪功能的 Pick 图像,它的宽度为 2000,高度为 500 => 1:4,我希望用户选择的图像替换位于 drawable/custom_image 中的图像。 jpg。注意:图像“custom_image”在应用程序中未显示为 imageview。我搜索了 Stackoverflow,并找到了方法,但我在裁剪它并将所选图像替换为“R.drawable.custom_image”时遇到了问题。

编辑:忘记裁剪,里面有问题,我只需要在 OnActivityResult 中替换可绘制代码。

我创建了一个按钮,当按下它时它会调用一个方法,代码如下:

    Button mSelectbutton = (Button) view.findViewById(R.id.selectimage);
mSelectbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SelectImageActivity(v);
}
});

选择图片 Activity :

public void SelectImageActivity(View v) {

Intent selectintent = new Intent();
// Show only images, no videos or anything else
selectintent.setType("image/*");
selectintent.setAction(Intent.ACTION_GET_CONTENT);
// Always show the chooser (if there are multiple options available)
startActivityForResult(Intent.createChooser(selectintent, "Select Picture"), PICK_IMAGE_REQUEST);

方法如下:

OnActivityResult Code : 
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
Drawable imageView = (Drawable)findViewById(R.drawable.custom_header);
imageView.setImageDrawable(getDrawable(R.drawable.custom_header);
}
}

最佳答案

我已经使用这个库来解决这个问题,因为保留 outputx 等......不适用于某些版本的 android:

将这个库添加到gradle:

//image cropping library to show as square for android older versions to work
compile 'com.soundcloud.android:android-crop:1.0.1@aar'

此方法执行裁剪:

private void performCrop(Uri mImageCaptureUri) {
//this creates a new image file comment below if you want file creation code
Uri destinationUri = MediaUtils.getOutputMediaFileUri(GlobalConstants.CREATE_IMAGE);

Crop.of(mImageCaptureUri,destinationUri).asSquare().start(getActivity(),this);
}

在您的 Activity 结果中,您可以获取 Cropped image catch it:

if(requestCode == Crop.REQUEST_CROP) {
Uri outPutImageUri = Crop.getOutput(data);

如果你想了解更多信息,请在下方评论

关于android - 添加 Pickimage,使用 1 :4 & Replace drawab. 图像裁剪 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34136815/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com