[英]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.