问题描述
请给我任何建议或需要您的帮助来设置多边形的点击侦听器,我已经实现了以下使用自定义视图绘制多边形的代码。
public class CustomView extends View {
Paint paint;
List<ImagesAnnotationModel> annotationModelList;
public CustomView(Context context,List<ImagesAnnotationModel> annotationModelList) {
super(context);
this.annotationModelList = annotationModelList;
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL_AND_stroke);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for (int i = 0; i < annotationModelList.size(); i++) {
ImagesAnnotationModel imagesAnnotationModel = annotationModelList.get(i);
try {
List<ImagesAnnotationModel.BodyJsonObject> model_data = imagesAnnotationModel.getBodyJsonObject();
Path wallpath = new Path();
wallpath.reset();
for (int j = 0; j < model_data.size(); j++) {
String xy = model_data.get(j).getXy();
String pos[] = xy.split(",");
if (j == 0) {
wallpath.moveto(Float.parseFloat(pos[0]),Float.parseFloat(pos[1]));
} else {
wallpath.lineto(Float.parseFloat(pos[0]),Float.parseFloat(pos[1]));
}
}
paint.setFlags(i);
canvas.drawPath(wallpath,paint);
// canvas.drawCircle(x,y,10,paint);
} catch (Exception e) {
e.printstacktrace();
}
}
}
public boolean onTouchEvent(MotionEvent event) {
Log.i("postion","f==>"+event.getFlags());
return false;
}
}
我已将此自定义视图添加到相对布局中并使用 lineto() 绘制线条并相互连接,以便最终在画布上绘制自定义对象。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)