Android产生圆角图片Bitmap

圆角图片很常用,也比较美观,可以将服务器获取的图片以圆角的形式作为背景

如下图所示的圆角背景图片:



首先输入一个Bitmap,然后经过处理输出一个圆角Bitmap

/*第二个、第三个参数是px,使用时看看是不是需要转换成dp*/
public static Bitmap getRoundCorner(Bitmap bitmap, int pixelsX,int pixelsY) {
    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(output);
    final int color = 0xff424242;
    final Paint paint = new Paint();
    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
    final RectF rectF = new RectF(rect);
    final float roundPx = pixelsX;
    final float roundPy = pixelsY;
    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);
    /*public void drawRoundRect (RectF rect, float rx, float ry, Paint paint)
    Draw the specified round-rect using the specified paint.
    The roundrect will be filled or framed based on the Style in the paint.
    Parameters
    rect  The rectangular bounds of the roundRect to be drawn
    rx  The x-radius of the oval used to round the corners
    ry  The y-radius of the oval used to round the corners
    paint  The paint used to draw the roundRect
    */
    canvas.drawRoundRect(rectF, roundPx, roundPy, paint);
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    canvas.drawBitmap(bitmap, rect, rect, paint);
    return output;
}
然后将圆角Bitmap填充到控件

/**
     * @param mContext
     * @param view
     * @param url
     * @param errorImageResId
     */
    /*将给定url的图片设为给定布局容的背景,带默认图片
    * 注意调用这个方法的地方是需要圆角背景图的地方*/
    public static void setViewGroupRoundCornerBackgroundByUrl(final Context mContext, final ViewGroup view, String url, final int errorImageResId){
        client = AsynHttpClient.getInstance(mContext.getApplicationContext());
        ImageRequest imageRequest = new ImageRequest(
                url,
                new Response.Listener<Bitmap>() {
                    @Override
                    public void onResponse(Bitmap response) {
                      
                        Bitmap bitmap=RoundCornerBitmap.getRoundCorner(
                                response,
                                88,88
                        );
                        view.setBackgroundDrawable(new BitmapDrawable(bitmap));
                    }
                }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                view.setBackgroundResource(errorImageResId);
                ToastUtil.showShortToast(mContext,"网络图片加载错误");
            }
        });
        client.addTask(imageRequest);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值