从 onPictureTaken 结果裁剪圆形图像
Posted
技术标签:
【中文标题】从 onPictureTaken 结果裁剪圆形图像【英文标题】:Crop rounded image from onPictureTaken result 【发布时间】:2015-03-16 12:18:51 【问题描述】:我有以下情况:
我有全屏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.
谢谢!
【问题讨论】:
【参考方案1】:有两种方法可以做到这一点
以编程方式:可以使用 getRoundedShapeImage 之类的方法将图像裁剪为圆形。 使用设计:可以使用一个内圆内圆透明的方形图片,然后将其设置为imageView的src并将图片设置为imageView的背景我认为第二个更好,因为与第一个相比,它会花费更少的时间并且容易。
【讨论】:
感谢您的回复,但不是我想要的。我想要一个比我的“img”位图更小的位图,它的大小与我的可绘制圆圈相同或更接近,并在图像中占据相应部分的圆圈位置【参考方案2】:您可以使用自定义 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_
android:layout_
app:border_
app:border_color="#FF000000"/>
在pictureTaken方法中设置bitmap为圆形imageview后。
CircleImageView iv=(CircleImageView)findViewById(R.id.circle_image);
iv.setImageBitmap(bmp);
【讨论】:
以上是关于从 onPictureTaken 结果裁剪圆形图像的主要内容,如果未能解决你的问题,请参考以下文章