我在 Glide 上遇到问题: 如果我从“相机肖像”模式(在我的情况下为Pixel XL)拍摄照片,则稍后加载的图像将逆时针旋转90°。
二手滑行:
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
这是我加载图片的方法:
public class BetterRoundedImageView extends RoundedImageView {
private static final String TAG = BetterRoundedImageView.class.getSimpleName();
public BetterRoundedImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* Loads an image given by param url (this sets a default placeholder)
*
* @param url The url of the desired image to be loaded
*/
public void loadImage(final String url) {
loadImage(url, R.drawable.tracktics_logo);
}
/**
* Loads an image given by param url and a default placeholder while loading
*
* @param url The url of the desired image to be loaded
* @param placeholderResId the resource Id of the placeholder shown while loading image
*/
public void loadImage(final String url, @DrawableRes final int placeholderResId) {
Glide.with(getContext())
.asBitmap()
.load(url)
.circleCrop()
.placeholder(placeholderResId)
.into(BetterRoundedImageView.this);
}
}
此类正在从{p>扩展RoundedImageView
implementation 'com.makeramen:roundedimageview:2.3.0'
它的用法如下:
playerPhoto.loadImage(data.getProfilePictureUrl(), R.drawable.ic_default_profilepicture);
有人可以帮我吗?
编辑:
也许它与数据的存储方式有关?在我实际拍摄照片的活动中,图像已正确加载。但是,当我回到另一个视图时,该图像是从服务器(CDN)提取并本地缓存到Realm数据库的。
通过发送base64字符串以保存exif信息在服务器上存储图像时,是否缺少某些东西?
答案 0 :(得分:0)
我遇到了同样的问题,使用此代码,图像旋转了90度
Glide.with(activity).load(BitmapFactory.decodeFile(photoPath)).into(imgPicture)
使用此代码可以按预期工作
Glide.with(activity).asBitmap().load(photoPath).into(imgPicture)
与其说是答案,不如说是一个提示,可以帮助您。
答案 1 :(得分:0)
我通过替换库解决了该问题:
https://github.com/MLSDev/RxImagePicker
由另一个Image Picker库:
https://github.com/ArthurHub/Android-Image-Cropper
现在可以正确处理旋转了。...
似乎根本不是Glide问题!