DragPolygonView for Android 是一个支持可拖动多边形,支持通过拖拽多边形的角改变其形状的任意多边形控件。
- 支持添加多个任意多边形
- 支持通过触摸多边形拖动改变其位置
- 支持通过触摸多边形的角改变其形状
- 支持点击、长按、改变等事件监听
- 支持多边形单选或多选模式
你也可以直接下载 演示App 体验效果
-
在Project的 build.gradle 或 setting.gradle 中添加远程仓库
repositories { //... mavenCentral() maven { url 'https://jitpack.io' } }
-
在Module的 build.gradle 里面添加引入依赖项
implementation 'com.github.jenly1314:DragPolygonView:1.0.2'
属性 | 值类型 | 默认值 | 说明 |
---|---|---|---|
dpvStrokeWidth | float | 4 | 画笔描边的宽度 |
dpvPointStrokeWidthMultiplier | float | 1.0 | 绘制多边形点坐标时基于画笔描边的宽度倍数 |
dpvPointNormalColor | color | #FFE5574C | 多边形点的颜色 |
dpvPointPressedColor | color | 多边形点按下状态时的颜色 | |
dpvPointSelectedColor | color | 多边形点选中状态时的颜色 | |
dpvLineNormalColor | color | #FFE5574C | 多边形边线的颜色 |
dpvLinePressedColor | color | 多边形边线按下状态的颜色 | |
dpvLineSelectedColor | color | 多边形边线选中状态的颜色 | |
dpvFillNormalColor | color | #3FE5574C | 多边形填充的颜色 |
dpvFillPressedColor | color | #7FE5574C | 多边形填充按下状态时的颜色 |
dpvFillSelectedColor | color | #AFE5574C | 多边形填充选中状态时的颜色 |
dpvAllowableOffsets | dimension | 16dp | 触点允许的误差偏移量 |
dpvDragEnabled | boolean | true | 是否启用拖动多边形 |
dpvChangeAngleEnabled | boolean | true | 是否启用多边形的各个角的角度支持可变 |
dpvMultipleSelection | boolean | false | 是否是多选模式,默认:单选模式 |
dpvClickToggleSelected | boolean | false | 是否点击就切换多边形的选中状态 |
dpvAllowDragOutView | boolean | false | 是否允许多边形拖出视图范围 |
dpvTextSize | dimension | 16sp | 是否允许多边形拖出视图范围 |
dpvTextNormalColor | color | #FFE5574C | 多边形文本的颜色 |
dpvTextPressedColor | color | 多边形文本按下状态的颜色 | |
dpvTextSelectedColor | color | 多边形文本选中状态的颜色 | |
dpvShowText | boolean | true | 是否显示多边形的文本 |
dpvFakeBoldText | boolean | false | 多边形Text的字体是否为粗体 |
布局示例
<com.king.view.dragpolygonview.DragPolygonView
android:id="@+id/dragPolygonView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
代码示例
//添加多边形
dragPolygonView.addPolygon(Polygon polygon);
//添加多边形(多边形的各个点)
dragPolygonView.addPolygon(PointF... points);
//根据位置将多边形改为选中状态
dragPolygonView.setPolygonSelected(int position);
//改变监听
dragPolygonView.setOnChangeListener(OnChangeListener listener);
//点击监听
dragPolygonView.setOnPolygonClickListener(OnPolygonClickListener listener);
//长按监听
dragPolygonView.setOnPolygonLongClickListener(OnPolygonLongClickListener listener)
更多使用详情,请查看app中的源码使用示例或直接查看 API帮助文档
- Polygon新增Text属性(可显示在多边形中间)
- 新增点击和长按事件
- 新增选中相关状态
- DragPolygonView初始版本
如果您喜欢DragPolygonView,或感觉DragPolygonView帮助到了您,可以点右上角“Star”支持一下,您的支持就是我的动力,谢谢 😃
您也可以扫描下面的二维码,请作者喝杯咖啡 ☕
我的博客 | GitHub | Gitee | CSDN | 博客园 |
---|---|---|---|---|
Jenly's Blog | jenly1314 | jenly1314 | jenly121 | jenly |
微信公众号 | Gmail邮箱 | QQ邮箱 | QQ群 | QQ群 |
---|---|---|---|---|
Jenly666 | jenly1314 | jenly1314 | 20867961 | 64020761 |