Android 使用Glide加载gif时内存使用率高
我正在使用Glide在我的Android 使用Glide加载gif时内存使用率高,android,android-glide,Android,Android Glide,我正在使用Glide在我的PagerAdapter中加载GIF 图像来自服务器,具有高分辨率和大量帧 我注意到,一旦加载并播放GIF,内存使用率就会很高,并可能导致内存不足 我尝试了以下滑动方法(.override()、skipMemoryCache()、diskCacheStrategy()),但内存使用情况没有改变 在Glide中还有其他方法可以使用吗 Glide.with(mContext) .load(imageUrl) .over
PagerAdapter
中加载GIF
图像来自服务器,具有高分辨率和大量帧
我注意到,一旦加载并播放GIF,内存使用率就会很高,并可能导致内存不足
我尝试了以下滑动方法(.override()、skipMemoryCache()、diskCacheStrategy()
),但内存使用情况没有改变
在Glide中还有其他方法可以使用吗
Glide.with(mContext)
.load(imageUrl)
.override(480, 342)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
imageViewBackground.setImageDrawable(resource);
return false;
}
})
.into(imageViewBackground);
Glide.with(mContext)
.load(图像URL)
.超控(480342)
.listener(新的RequestListener(){
@凌驾
公共布尔onException(异常e、字符串模型、目标、布尔isFirstResource){
返回false;
}
@凌驾
公共布尔值onResourceReady(GlideDrawable资源、字符串模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){
imageViewBackground.setImageDrawable(资源);
返回false;
}
})
。输入(imageViewBackground);
超驰控制对我起了作用,但仅此而已
小部件更新的RemoteView超过最大位图内存使用量错误
超驰控制对我起了作用,但仅此而已
RemoteViews for widget update超过最大位图内存使用量错误经过多次尝试后,我得到了这种方法
Glide.with(mContext)
.load(media_url)
.thumbnail(Glide
.with(mContext)
.load(media_url)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
})
)
.dontAnimate()
.into(mIvMessageImage);
Glide.with(mContext)
.load(媒体地址)
.缩略图(滑动)
.with(mContext)
.load(媒体地址)
.listener(新的RequestListener(){
@凌驾
公共布尔onException(异常e、字符串模型、目标、布尔isFirstResource){
progressBar.setVisibility(View.GONE);
返回false;
}
@凌驾
公共布尔值onResourceReady(GlideDrawable资源、字符串模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){
progressBar.setVisibility(View.GONE);
返回false;
}
})
)
.dontAnimate()
.into(mimessageimage);
经过多次尝试,我终于明白了这一点
Glide.with(mContext)
.load(media_url)
.thumbnail(Glide
.with(mContext)
.load(media_url)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
progressBar.setVisibility(View.GONE);
return false;
}
})
)
.dontAnimate()
.into(mIvMessageImage);
Glide.with(mContext)
.load(媒体地址)
.缩略图(滑动)
.with(mContext)
.load(媒体地址)
.listener(新的RequestListener(){
@凌驾
公共布尔onException(异常e、字符串模型、目标、布尔isFirstResource){
progressBar.setVisibility(View.GONE);
返回false;
}
@凌驾
公共布尔值onResourceReady(GlideDrawable资源、字符串模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){
progressBar.setVisibility(View.GONE);
返回false;
}
})
)
.dontAnimate()
.into(mimessageimage);
你能添加你正在使用的代码吗?你需要在gif中执行中心裁剪,如果你不知道,不要操纵缓存。@YamenNassif,添加了我正在使用的代码。你能添加你正在使用的代码吗?你需要在gif中执行中心裁剪,如果你不知道,不要操纵缓存。@YamenNassif,添加了我正在使用的代码。它需要一些秒,但玩。它需要一些秒,但玩。