分别使用drawLines和drawLine方法画三角形
如果使用drawLines方法绘制三角形,则需要指定6个坐标点,现在使用drawLine方法指定3个坐标就可以绘制三角形了(绘制首尾相连的直线)
答案:改进后的方法的基本原理是指定n个点的坐标(p1,p2,p3.....pn)后,分别取n次坐标,第一次取p1和p2,第二次取p2和p3.....第n次取pn和p1.这样就可以用直线绘制首尾相连的图形了。
代码:
- package com.app;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.view.View;
- public class DrawLinesExtView extends View{
- float [] pts = new float[]{200,10,60,300,180,320};
- public DrawLinesExtView(Context context) {
- super(context);
- }
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- Paint paint = new Paint();
- paint.setColor(Color.BLUE);
- for(int i = 0;i<pts.length;i+=2){
- int stopXIndex = i+2;
- int stopYIndex = i+3;
- if(stopXIndex>pts.length-1){
- stopXIndex = 0;
- }
- if(stopYIndex>pts.length-1){
- stopYIndex = 1;
- }
- canvas.drawLine(pts[i], pts[i+1], pts[stopXIndex], pts[stopYIndex], paint);
- }
- canvas.drawLines(new float[]{100,10,20,200,100,10,120,220,20,200,120,220}, 0, 12, paint);
- }
- }
效果图: