glide 加载圆角图片

效果如上, 这是ListView的一个item 左边是一个圆角矩形的背景. 使用glide加载图片

自定义一个FilletImageView, 代码如下:

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Xfermode;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.widget.ImageView;

/**
 * Created by Administrator on 2016/8/19.
 */
public class FilletImageView extends ImageView
{
    private Rect    rect = new Rect();
    private RectF   rectF = new RectF();
    private float   radius;
    private Bitmap  bitmap;
    private Xfermode xfermode = new PorterDuffXfermode(PorterDuff.Mode.SRC_IN);

    public FilletImageView(Context context)
    {
        this(context, null);
    }

    public FilletImageView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        radius = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, getResources().getDisplayMetrics());
        try
        {
            if(android.os.Build.VERSION.SDK_INT >= 11)
            {
                setLayerType(LAYER_TYPE_SOFTWARE, null);
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    @Override
    public void setImageBitmap(Bitmap bm)
    {
        this.bitmap = bm;
    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        if (bitmap == null)
            return;

        rect.set(0,0,getWidth(),getHeight());
        rectF.set(rect);

        Paint paint = new Paint();
        paint.setColor(Color.RED);
        paint.setAntiAlias(true);
        canvas.drawRoundRect(rectF, radius, radius, paint);
        paint.setXfermode(xfermode);
        canvas.drawBitmap(bitmap, null, rect, paint);
    }
}
View Code

相关文章:

  • 2021-05-28
  • 2021-04-18
  • 2021-11-03
  • 2021-05-27
  • 2021-06-01
  • 2021-08-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-15
  • 2021-12-02
  • 2022-01-19
  • 2022-12-23
  • 2021-05-26
  • 2021-09-26
  • 2022-12-23
相关资源
相似解决方案