android Glide 去掉绿色背景(图片变绿解决方法)

在项目中使用了Glide加载图片,今天遇到了图片的背景会变成绿色。网上找到了
解决方案。

感谢Yaphet赵勇博主的分享:
http://blog.csdn.net/yaphetzhao/article/details/50586991

图片变色的原因是因为图片压缩所致,一半是webp会出现这样的情况。
所以在使用Glide的缓存机制的时候,缓存原图片即可。

Glide.with(a).load(url).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(i);

关键点是
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
就可以解决一部分问题了。

上面的方法是通过缓存解决的,可以解决一部分图片变绿的问题。下面的方法是彻底解决。
Glide使用bitmap的编码问RGB565,所以有时的时候由于过度压缩导致了图片变绿。
所以要改变一下Glide的bitmap编码。

import android.content.Context;

import com.bumptech.glide.Glide;
import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.module.GlideModule;

/**
 *
 * 增加图片清晰度
 */
public class GlideConfiguration implements GlideModule{
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
    }

    @Override
    public void registerComponents(Context context, Glide glide) {

    }
}

然后AndroidManifext中:

data
    android:name="com.xxx.xxx.xxx.GlideConfiguration"
    android:value="GlideModule"/>

这样就可以搞定了!

你可能感兴趣的:(Android开发)