【问题标题】:How to perform circular image cropping function如何执行圆形图像裁剪功能
【发布时间】:2013-02-10 11:43:58
【问题描述】:

我有一个演示,它首先从相机拍摄图像,然后要求用户裁剪图像。裁剪屏幕中间有一个矩形框,触摸 4 个面的边框时,在面的中点显示 4 个箭头以进行更改用户想要的盒子的大小。因为它是使用意图 com.android.camera.action.CROP 提供的内置机制。

我想做同样的事情,但圆形窗口。裁剪圆形图像。

是否有人曾使用过这种裁剪功能。 请帮帮我。

【问题讨论】:

    标签: android android-imageview android-image


    【解决方案1】:

    看看这个函数... 这是你需要的吗??

    public Bitmap getCroppedBitmap(Bitmap bitmap) {
    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
            bitmap.getHeight(), 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());
    
    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);
    // canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
    canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2,
            bitmap.getWidth() / 2, paint);
    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    canvas.drawBitmap(bitmap, rect, rect, paint);
    //Bitmap _bmp = Bitmap.createScaledBitmap(output, 60, 60, false);
    //return _bmp;
    return output;
    }
    

    检查此链接..crop image

    如果你正在使用 Intents.. 尝试使用这个

       intent.setType("image/*");
       intent.putExtra("crop", "true");
       intent.putExtra("scale", scale);
       intent.putExtra("return-data", return_data);
       intent.putExtra("circleCrop", true);
    

    【讨论】:

    • 它显示 Mode.SRC_IN 的编译时错误。这个类可用于 android 2.3 吗?
    • 我不确定.. 尝试检查 2.3 中的任何其他模式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2021-06-12
    • 2016-05-01
    相关资源
    最近更新 更多