美文网首页
android glide 处理加载完成的图片

android glide 处理加载完成的图片

作者: 风___________ | 来源:发表于2018-08-16 13:52 被阅读143次

使用:

// eg:将加载完成的图片白底转透明
KapGlideHelper.CreatedGlide(getContext(),card.getCardLogoPath())
                .transform(new GlideBitmapChangeTransform(getContext()) {
                    @Override
                    public Bitmap changeBitmap(Bitmap oldBitmap) {
                        return ImageDrawHelper.DrawWriteToAlpha(oldBitmap);
                    }
                })
                .into(iconImageView);

核心代码:

 .transform(new GlideBitmapChangeTransform(getContext()) {
                    @Override
                    public Bitmap changeBitmap(Bitmap oldBitmap) {
                        return ImageDrawHelper.DrawWriteToAlpha(oldBitmap);
                    }
                })

工具类代码如下:

import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;

/**
 * glide 处理bitmap的 帮助类
 * */
public abstract class GlideBitmapChangeTransform extends BitmapTransformation {
    abstract public Bitmap changeBitmap(Bitmap oldBitmap);
    public GlideBitmapChangeTransform(Context context) {
        super(context);
    }
    @Override
    protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
        // 透明底
        return changeBitmap(toTransform);
    }
    @Override
    public String getId() {
        return getClass().getName();
    }
}

相关函数:

/**
 * Created by jing on 2017/6/7.
 * Glide 图片加载帮助类
 */
public class KapGlideHelper {
    /**
     * 用Application context 防止出现
     * */
    // 创建gradle
    public static RequestManager CreatedGlide(){
       return Glide.with(KapApplication.getContext());
    }
    public static DrawableRequestBuilder CreatedGlide(String url){
        return CreatedGlide(KapApplication.getContext(),url);
    }
    public static DrawableRequestBuilder CreatedGlide(Context context, String url){
        return Glide.with(context).load(url).diskCacheStrategy(DiskCacheStrategy.SOURCE);
    }
}
public class ImageDrawHelper {
// 白色转化为透明色(对像素操作)
    public static Bitmap DrawWriteToAlpha(Bitmap mBitmap){
        Bitmap createBitmap = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), Bitmap.Config.ARGB_8888);
        if (mBitmap != null) {
            int mWidth = mBitmap.getWidth();
            int mHeight = mBitmap.getHeight();
            for (int i = 0; i < mHeight; i++) {
                for (int j = 0; j < mWidth; j++) {
                    int color = mBitmap.getPixel(j, i);
                    int g = Color.green(color);
                    int r = Color.red(color);
                    int b = Color.blue(color);
                    int a = Color.alpha(color);
                    if(g>=250&&r>=250&&b>=250){
                        a = 0;
                    }
                    color = Color.argb(a, r, g, b);
                    createBitmap.setPixel(j, i, color);
                }
            }
        }
        return createBitmap;
    }
}

相关文章

网友评论

      本文标题:android glide 处理加载完成的图片

      本文链接:https://www.haomeiwen.com/subject/peonbftx.html