裁剪控件¶
添加: Version 0.5.0
CropViewLayout
是一个裁剪控件,目的是帮助你快速构建自己的裁剪页面。
快速使用¶
添加: Version 0.5.0
<com.ave.vastgui.tools.view.cropview.CropViewLayout
android:id="@+id/cropview_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
调用裁剪¶
调用系统裁剪¶
你可以使用 CropIntent 来调用系统裁剪。
调用 VastCropActivity¶
添加: Version 0.5.0
VastCropActivity
是默认提供的裁剪应用,你可以通过下面的方式来轻松的使用它。
// 在 AndroidManifest.xml 中声明
<activity
android:name="com.ave.vastgui.tools.activity.app.VastCropActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
// 使用 intent 来启动
val intent = Intent(this, VastCropActivity::class.java).apply {
data = originalImageUri
putExtra(VastCropActivity.FRAME_TYPE, VastCropActivity.FRAME_TYPE_GRID9)
putExtra(VastCropActivity.OUTPUT_X, 300f)
putExtra(VastCropActivity.OUTPUT_Y, 300f)
}
VastCropActivity
更多使用还请参考 VastCropActivity.kt 的定义。
设置预览框的类型¶
添加: Version 0.5.0 更新: Version 1.5.2
可以通过 crop_frame_type
或者调用 cropFrameType
来设置预览框的形状,目前支持四种:
类型 | 示例 | 类型 | 示例 |
---|---|---|---|
CIRCLE | ![]() |
SQUARE | ![]() |
GRID9 | ![]() |
RECTANGLE | ![]() |
binding.cropViewLayout.cropFrameType = CropFrameType.CIRCLE
<com.ave.vastgui.tools.view.cropview.CropViewLayout
...
app:crop_frame_type="circle" />
设置预览框的大小¶
添加: Version 0.5.0 更新: Version 1.5.2
预览框的大小和预览框的形状有关,如果预览框的形状是 RECTANGLE
,则可以通过 crop_frame_width
和 crop_frame_height
或者调用 setCropFrameSize(Float, Float)
来设置预览框的大小。
binding.cropViewLayout.setCropFrameSize(50f.DP, 50f.DP)
<com.ave.vastgui.tools.view.cropview.CropViewLayout
...
app:crop_frame_width="50dp"
app:crop_frame_height="50dp" />
如果形状是 CIRCLE
, SQUARE
或 GRID9
,则可以通过 crop_frame_size
或者调用 setCropFrameSize(Float)
来设置预览框的大小。
binding.cropViewLayout.setCropFrameSize(50f.DP)
<com.ave.vastgui.tools.view.cropview.CropViewLayout
...
app:crop_frame_size="50dp" />
设置预览框的蒙版颜色¶
添加: Version 0.5.0 更新: Version 0.5.3
可以通过 crop_mask_layer_color
或者调用 setCropMaskColor
来设置蒙版颜色。
binding.cropViewLayout.setCropMaskColor(Color.RED)
<com.ave.vastgui.tools.view.cropview.CropViewLayout
...
app:crop_mask_layer_color="@color/red" />
蒙版颜色说明
建议采用带透明度的颜色效果会更好。
设置设置预览框的边框颜色¶
添加: Version 0.5.0
可以通过 crop_frame_stroke_color
或者调用 setCropFrameStrokeColor
来设置边框颜色。
binding.cropViewLayout.setCropFrameStrokeColor(Color.RED)
<com.ave.vastgui.tools.view.cropview.CropViewLayout
...
app:crop_frame_stroke_color="@color/red" />
获取裁剪照片¶
添加: Version 0.5.0 更新: Version 1.5.2
过时说明
因为 setDrawingCacheEnabled
, buildDrawingCache
相关 API 在 API 28 过时,因而提供了两种方式获取裁剪照片。
对 Android 9 的适配(API 28开始)¶
val bitmap: Bitmap? =
binding.cropViewLayout.getCroppedImageApi28(outputX, outputY)
对 Android 8 及以下的适配¶
val bitmap: Bitmap? =
binding.cropViewLayout.getCroppedImage(outputX, outputY)