我遇到了很大的麻烦。
我需要实现自定义相机功能,我想做的就是根据相机活动中的覆盖图像区域裁剪图像。
请查看图像
在相机屏幕图像将显示圆形覆盖,而如果我按下捕获按钮,它将只占据图像区域的圆形部分并保存在SD卡中。
要裁剪圆形,您可以使用一个名为OpenCV的库,该库将允许您对从相机获得的帧执行功能。
例如http://opencvexamples.blogspot.com/2014/02/crop-elliptical-region-from-image.html
要找出需要裁剪的区域的坐标,您应该获得覆盖相对于帧分辨率或用于显示它的显示小部件的坐标。您可以通过"运动事件"获得用户放置圆的确切坐标。
如果使用Android Studio
进行开发,则可以导入此库。
将以下内容添加到您的build.gradle
dependencies {
compile 'com.makeramen:roundedimageview:2.2.1'
}
就是一个例子
<com.makeramen.roundedimageview.RoundedImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/imageView1"
android:src="@drawable/photo1"
android:scaleType="fitCenter"
app:riv_corner_radius="30dip"
app:riv_border_width="2dip"
app:riv_border_color="#333333"
app:riv_mutate_background="true"
app:riv_tile_mode="repeat"
app:riv_oval="true" />
请检查此项以获取更多信息