1. 程式人生 > >android Glide 去掉綠色背景(圖片變綠解決方法)

android Glide 去掉綠色背景(圖片變綠解決方法)

在專案中使用了Glide載入圖片,今天遇到了圖片的背景會變成綠色。網上找到了
解決方案。

圖片變色的原因是因為圖片壓縮所致,一半是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中:

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

這樣就可以搞定了!