简体   繁体   English

从库中选择图像时,Android 7.0中的毕加索CircleImageView resize()问题

[英]Picasso CircleImageView resize() issue in Android 7.0 while selecting image from Gallery

I am using CircleImageView instance to display image and loading it picked up from Gallery or captured using camera using Picasso library. 我正在使用CircleImageView实例显示图像并加载从Gallery中拾取的图像, 或者使用Picasso库使用相机捕获的图像
I am facing one issue on Android 7.0 that is image is not loading into image view when I am resizing it. 我在Android 7.0上遇到一个问题,即在调整大小时图像未加载到图像视图中。 Otherwise without resizing it works fine on othere OSes. 否则,无需调整大小就可以在其他OS上正常工作。

Below is my code: 下面是我的代码:

onActivityResult() method

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == REQUEST_PERMISSION) {
            PermissionChecker.checkPermission(activity);
        } else if (resultCode == Activity.RESULT_OK) {
            if (requestCode == SELECT_FILE)
                onSelectFromImageGallery(data);
            else if (requestCode == REQUEST_CAMERA)
                onCaptureImageResult(data);
        }
    }


onSelectFromImageGallery() method

public void  onSelectFromImageGallery(Intent data)  {
        Uri imgUri;
        if (data != null) {
            imgUri = data.getData();
            if (imgUri != null) {
                profileImagePath = imgUri.toString();
                CommonUtils.displayImage(activity, imgUri.toString(), imageView);
            } else if (data.getClipData() != null) {
                if (!StringUtils.isNullOrEmpty(data.getClipData().getItemAt(0).toString())) {
                    imgUri = data.getClipData().getItemAt(0).getUri();
                    profileImagePath = imgUri.toString();
                    CommonUtils.displayImage(activity, imgUri.toString(), imageView);
                }
            }
        }
    }


displayImage() method:

public static void displayImage(Context context, final String imageUri, final ImageView imageView) {
        Picasso.with(context)
                .load(imageUri)
                .error(R.drawable.default_profile_pic)
                .placeholder(R.drawable.default_profile_pic)
                .resize(200, 200)
                .centerCrop()
                .onlyScaleDown()
                .into(imageView, new Callback() {
            @Override
            public void onSuccess() {
            }

            @Override
            public void onError() {
                Log.e(TAG, "Unknown error found while setting the image.");
            }
        });
    }

Image will start loading once I remove resize() , centerCrop() and onlyScaleDown() from the code. 一旦从代码中删除resize()centerCrop()onlyScaleDown() ,图像就会开始加载。

You can resize the image the same as if you were to resize a view. 您可以调整图像的大小,就像调整视图的大小一样。 Try doing something like this: 尝试做这样的事情:

    imageView.getLayoutParams().height = 200;
    imageView.getLayoutParams().width = 200;
    imageView.requestLayout();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM