0

我正在使用 CircleImageView 实例来显示图像并加载从图库中拾取的图像或使用 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()

4

1 回答 1

0

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

    imageView.getLayoutParams().height = 200;
    imageView.getLayoutParams().width = 200;
    imageView.requestLayout();
于 2017-03-16T13:56:12.757 回答