Android产生圆角图片Bitmap

来源:互联网 发布:rsa加密算法 c语言 编辑:程序博客网 时间:2024/06/10 15:06

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

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



首先输入一个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
原创粉丝点击