码迷,mamicode.com
首页 > 其他好文 > 详细

glide 加载圆角图片

时间:2016-08-19 18:48:09      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

效果如上, 这是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

然后在加载的时候列表项太多, 第一次没有显示出图像, 解决方法:在glide将图像下载成功后再加载. 代码如下:
技术分享

技术分享

好了, 一次可以全部显示了

参考:
http://blog.csdn.net/zz7zz7zz/article/details/11495517
http://www.cnblogs.com/zhaoyanjun/p/5404162.html

glide 加载圆角图片

标签:

原文地址:http://www.cnblogs.com/emyueguang/p/5788579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!