ZoomCropImageView.java 文件源码

java
阅读 21 收藏 0 点赞 0 评论 0

项目:ZoomCropImage 作者:
/**
     * 剪切图片,返回剪切后的bitmap对象
     *
     * @return
     */
    public Bitmap crop(int outputWidth, int outputHeight) {
        int width = getWidth();
        int height = getHeight();
        int horizontalPadding = (width - mCropWidth) / 2;
        int verticalPadding = (height - mCropHeight) / 2;
        // TODO may cause OutOfMemory exception
        Bitmap bitmap = Bitmap.createBitmap(width, height,
                Bitmap.Config.ARGB_8888);
//      bitmap.setHasAlpha(true);
        Canvas canvas = new Canvas(bitmap);
        canvas.setDrawFilter(new PaintFlagsDrawFilter(0,
                Paint.FILTER_BITMAP_FLAG | Paint.ANTI_ALIAS_FLAG));
        Path clipPath = new Path();
        RectF rect = new RectF(horizontalPadding, verticalPadding, width
                - horizontalPadding, height - verticalPadding);
        switch (mCropShape) {
            case CropShape.SHAPE_RECTANGLE:
                clipPath.addRect(rect, Direction.CW);
                break;
            case CropShape.SHAPE_OVAL:
                clipPath.addOval(rect, Direction.CW);
                break;
        }
        canvas.clipPath(clipPath);

        draw(canvas);

        Bitmap croppedBitmap = Bitmap.createBitmap(bitmap, horizontalPadding,
                verticalPadding, mCropWidth, mCropHeight);
        return Bitmap.createScaledBitmap(croppedBitmap, outputWidth, outputHeight,
                false);
    }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号