android 实现绘图加点连线
时间: 2023-11-18 14:04:18 浏览: 30
要在 Android 上实现绘图加点连线,可以使用 Canvas 和 Paint 类。下面是一个简单的实现步骤:
1. 在 xml 布局文件中添加一个自定义 View,用于绘制图形。
```xml
<com.example.drawview.DrawView
android:id="@+id/draw_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
2. 在自定义 View 中重写 onDraw 方法,在其中绘制点和线。
```java
public class DrawView extends View {
private Paint paint;
private List<Point> points = new ArrayList<>();
private List<Pair<Point, Point>> lines = new ArrayList<>();
public DrawView(Context context, AttributeSet attrs) {
super(context, attrs);
paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStrokeWidth(5f);
paint.setStyle(Paint.Style.FILL);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for (Point point : points) {
canvas.drawCircle(point.x, point.y, 10f, paint);
}
for (Pair<Point, Point> line : lines) {
canvas.drawLine(line.first.x, line.first.y, line.second.x, line.second.y, paint);
}
}
public void addPoint(Point point) {
points.add(point);
invalidate();
}
public void addLine(Point start, Point end) {
lines.add(new Pair<>(start, end));
invalidate();
}
public void clear() {
points.clear();
lines.clear();
invalidate();
}
}
```
3. 在 Activity 中调用自定义 View 的方法,添加点和线。
```java
public class MainActivity extends AppCompatActivity {
private DrawView drawView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawView = findViewById(R.id.draw_view);
// 添加点和线
drawView.addPoint(new Point(100, 100));
drawView.addPoint(new Point(200, 200));
drawView.addLine(new Point(100, 100), new Point(200, 200));
}
}
```
这样就可以在 Android 上实现绘图加点连线了。