在从Gallery中选择图像时,Picasso CircleImageView在Android 7.0中调整resize()问题

时间:2017-02-27 13:05:34

标签: android imageview picasso android-7.0-nougat circleimage

我正在使用CircleImageView实例来显示图像并加载它从Gallery中拾取或使用Picasso库使用相机捕获。 我在 Android 7.0 上面临一个问题,即在调整大小时图像未加载到图像视图中。否则无需调整大小就可以在其他操作系统上正常工作。

以下是我的代码:

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.");
            }
        });
    }

从代码中删除resize()centerCrop()onlyScaleDown()后,图片就会开始加载。

1 个答案:

答案 0 :(得分:0)

您可以像调整视图大小一样调整图像大小。尝试做这样的事情:

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