8.2.2  drawLine方法:绘制直线

【功能说明】该方法用于在画布上绘制直线,通过指定直线的两个端点坐标来绘制。该方法只能绘制单条直线;如果需要同时绘制多条直线,则可以使用drawLines方法。

【基本语法】public void drawLine (float startX, float startY, float stopX, float stopY, Paint paint)

参数说明

startX:起始端点的X坐标。

startY:起始端点的Y坐标。

stopX:终止端点的X坐标。

stopY:终止端点的Y坐标。

paint:绘制直线所使用的画笔。

【实例演示】下面通过代码来演示如何在画布上绘制直线。

    1. protected void onDraw(Canvas canvas) {  
    2.     // TODO Auto-generated method stub  
    3.     super.onDraw(canvas);  
    4.     paint.setColor(Color.BLACK);                    //设置画笔颜色  
    5.     canvas.drawColor(Color.WHITE);                  //设置背景颜色  
    6.     paint.setStrokeWidth((float) 1.0);              //设置线宽  
    7.     canvas.drawLine(50, 50, 450, 50, paint);        //绘制直线  
    8.     paint.setStrokeWidth((float) 5.0);              //设置线宽  
    9.     canvas.drawLine(50, 150, 450, 150, paint);      //绘制直线  
    10.     paint.setStrokeWidth((float) 10.0);             //设置线宽  
    11.     canvas.drawLine(50, 250, 450, 250, paint);      //绘制直线  
    12.     paint.setStrokeWidth((float) 15.0);             //设置线宽  
    13.     canvas.drawLine(50, 350, 450, 350, paint);      //绘制直线  
    14.     paint.setStrokeWidth((float) 20.0);             //设置线宽  
    15.     canvas.drawLine(50, 450, 450, 450, paint);      //绘制直线  
    16. }



    在这段代码中,首先为画笔设置了颜色,然后将画布的背景设置为白色,接着绘制了4条直线,每条直线的线宽都不一样。读者运行这段代码,可以在手机屏幕上看到如图8.12所示的显示效果。

    jung java 直线 java画直线代码_数组

     


    图8.11  设置黄色背景

    jung java 直线 java画直线代码_jung java 直线_02

     


    图8.12  绘制直线


    8.2.3  drawLines方法:绘制多条直线

    【功能说明】该方法用于在画布上绘制多条直线,通过指定直线的端点坐标数组来绘制。该方法可以绘制多条直线,非常灵活。

    【基本语法】public void drawLines (float[] pts, Paint paint)

    参数说明

    pts:绘制直线的端点数组,每条直线占用4个数据。

    paint:绘制直线所使用的画笔。

    【实例演示】下面通过代码来演示如何在画布上绘制多条直线。

    1. protected void onDraw(Canvas canvas) {  
    2.     // TODO Auto-generated method stub  
    3.     super.onDraw(canvas);  
    4.     paint.setColor(Color.BLACK);                    //设置画笔颜色  
    5.     float[] pts={50,50,400,50,  
    6.                 400,50,400,600,  
    7.                 400,600,50,600,  
    8.                 60,600,50,50};                  //数据  
    9.     canvas.drawColor(Color.WHITE);                  //白色背景  
    10.     paint.setStrokeWidth((float) 5.0);              //线宽  
    11.     canvas.drawLines(pts, paint);                   //绘制多条直线  
    12. }



    在这段代码中,首先设置画笔的颜色,然后初始化一个数组代表绘制直线的各个端点,这里每一行4个数组,前两个为起始端点,后两个为终止端点,这里共绘制了4条直线,构成一个封闭的图形。读者运行这段代码,可以在手机屏幕上看到如图8.13所示的显示效果。

    8.2.4  drawLines方法:有选择地绘制多条直线

    【功能说明】该方法用于在画布上绘制多条直线,通过指定直线的端点坐标数组来绘制。该方法可以绘制多条直线,同时也可以指定哪些线段绘制,而哪些线段不绘制,更加灵活。

    【基本语法】public void drawLines (float[] pts, int offset, int count, Paint paint)

    参数说明

    pts:绘制直线的端点数组,每条直线占用4个数据。

    offset:跳过的数据个数,这些数据将不参与绘制过程。

    count:实际参与绘制的数据个数。

    paint:绘制直线所使用的画笔。

    【实例演示】下面通过代码来演示如何在画布上有选择地绘制直线。

    1. protected void onDraw(Canvas canvas) {  
    2.     // TODO Auto-generated method stub  
    3.     super.onDraw(canvas);  
    4.     paint.setColor(Color.BLACK);                    //设置画笔颜色  
    5.     float[] pts={50,50,400,50,  
    6.                 400,50,400,600,  
    7.                 400,600,50,600,  
    8.                 60,600,50,50};                  //数据  
    9.     canvas.drawColor(Color.WHITE);                  //白色背景  
    10.     paint.setStrokeWidth((float) 5.0);              //线宽  
    11.     canvas.drawLines(pts,4,12,paint);               //有选择地绘制直线  
    12. }



    在这段代码中,首先设置画笔的颜色,然后初始化一个数组代表绘制直线的各个端点。接着,设置画布的背景为白色,在绘制直线时调用drawLines方法,指定跳过前4个数据,取出12个数据绘制直线。读者运行这段代码,可以在手机屏幕上看到如图8.14所示的显示效果。读者可以看到这里绘制了其中的3条直线。

    jung java 直线 java画直线代码_drawline_03

     


    图8.13  绘制多条直线




    jung java 直线 java画直线代码_jung java 直线_04

     


    图8.14  有选择地绘制直线


    android绘图与动画效果参考:http://book.51cto.com/art/201204/328247.htm