您的位置:首页 > 移动开发 > Android开发

转换图片成圆形--并且缩放 Bitmap、Java、Android 图片设计

2014-01-10 14:36 387 查看
/**

     * 转换图片成圆形--并且缩放

     * @param bitmap 传入Bitmap对象

     * @return

     */

    public Bitmap toRoundBitmap(Bitmap bitmap,float scale) {

            int width = bitmap.getWidth();

            int height = bitmap.getHeight();

            float roundPx;

            float left,top,right,bottom,dst_left,dst_top,dst_right,dst_bottom;

            if (width <= height) {

                    roundPx = width / 2;

                    top = 0;

                    bottom = width;

                    left = 0;

                    right = width;

                    height = width;

                    dst_left = 0;

                    dst_top = 0;

                    dst_right = width;

                    dst_bottom = width;

            } else {

                    roundPx = height / 2;

                    float clip = (width - height) / 2;

                    left = clip;

                    right = width - clip;

                    top = 0;

                    bottom = height;

                    width = height;

                    dst_left = 0;

                    dst_top = 0;

                    dst_right = height;

                    dst_bottom = height;

            }

            

            Bitmap output = Bitmap.createBitmap(width,

                            height, Config.ARGB_8888);

            Canvas canvas = new Canvas(output);

            

            final int color = 0xff424242;

            final Paint paint = new Paint();

            final Rect src = new Rect((int)left, (int)top, (int)right, (int)bottom);

            final Rect dst = new Rect((int)dst_left, (int)dst_top, (int)dst_right, (int)dst_bottom);

            final RectF rectF = new RectF(dst);

            paint.setAntiAlias(true);

            

            canvas.drawARGB(0, 0, 0, 0);

            paint.setColor(color);

            canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

            paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));

            canvas.drawBitmap(bitmap, src, dst, paint);

           

            //缩放功能

            Matrix matrix=new Matrix();

            matrix.postScale(scale, scale);

            Bitmap temp = Bitmap.createBitmap(output,0,0,output.getWidth(),output.getHeight(),matrix,true);

            return temp;//否则return output即可

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐