从onPictureTaken结果裁剪圆角图像

时间:2015-03-16 12:18:52

标签: android bitmap surfaceview crop

我有以下情况:

enter image description here

我有全屏SurfaceView,在上半场我有我的圈子,我希望从图像裁剪过程中获得最终结果。

下面是我获取位图图像的方法:

 @Override
    public void onPictureTaken(byte[] data, Camera camera)
    {
        BitmapFactory.Options opts = new BitmapFactory.Options();
        //opts.inSampleSize = 2;
        Bitmap img = BitmapFactory.decodeByteArray(data, 0, data.length, opts);

//here I have to crop my image to be fit and have the same place like my circle.
}

谢谢!

2 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点

  • 以编程方式可以使用像getRoundedShapeImage这样的方法来裁剪圆角形状的图像。
  • 使用设计:可以使用内部为圆形且内部为圆形的方形图像,然后将其设置为imageView的src并将图片设置为imageView的背景

我认为第二个更好,因为与第一个相比,它会花费更少的时间并且很容易。

答案 1 :(得分:0)

您可以使用自定义circleimageview。

我找到了这个库。 Github链接:https://github.com/hdodenhof/CircleImageView

使用

<de.hdodenhof.circleimageview.CircleImageView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/circle_image"
    android:layout_width="96dp"
    android:layout_height="96dp"
    app:border_width="2dp"
    app:border_color="#FF000000"/>

在pictureTaken方法中设置位图以圈出imageview。

CircleImageView iv=(CircleImageView)findViewById(R.id.circle_image);
iv.setImageBitmap(bmp);