Glide4.8 使用TextView的drawableTop

2018-12-13  本文已影响42人  suniney

4.8以后SimpleTarget不推荐使用了,选择CustomVIewTarget,但是包含东西太多,自定义一个Target用于加载TextView的drawable

public class TextViewDrawableTarget extends CustomViewTarget<TextView, Drawable> {
    /**
     * Constructor that defaults {@code waitForLayout} to {@code false}.
     *
     * @param view
     */
    public TextViewDrawableTarget(@NonNull TextView view) {
        super(view);
    }

    @Override
    protected void onResourceCleared(@Nullable Drawable placeholder) {

    }

    @Override
    public void onLoadFailed(@Nullable Drawable errorDrawable) {
        //加载失败例如url=null,此时使用 fallback不生效
         view.setCompoundDrawablesWithIntrinsicBounds(null, mContext.getDrawable(R.mipmap.ic_boy), null, null);
    }

    @Override
    public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
        view.setCompoundDrawablesWithIntrinsicBounds(null, resource, null, null);
    }
}

//使用
  GlideApp.with(this)
                .load(url)
                .into(new TextViewDrawableTarget(tvAssociateName));
上一篇 下一篇

猜你喜欢

热点阅读