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所示的显示效果。

 
图8.11  设置黄色背景
 
图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条直线。

 
图8.13  绘制多条直线
 
图8.14  有选择地绘制直线

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

java drawlines()方法相关推荐

  1. 零基础全方位学习java的方法

    java技术岗是一个就业率非常高的岗位,因此有很多人都想要学习java技术,其中不乏一些零基础同学,零基础小白都不清楚自己该如何学习java,那么下面小编就为大家详细的介绍一下零基础全方位学习java ...

  2. 几种任务调度的 Java 实现方法与比较

    综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...

  3. 2021-02-23关于java的方法区,为什么叫方法区,是否与实际用途相悖?

    关于java的方法区,为什么叫方法区,是否与实际用途相悖? 在java中,栈中存放的是用来保存方法运行时状态的栈帧,存储了局部变量表,操作数栈等,而方法区存放的是已加载的类的基本信息.常量.静态变量等 ...

  4. 大数据笔记2019.5.9 Java中方法的使用

    方法: 1.方法的概念:(函数/过程) 封装了一段特定的业务逻辑功能 尽可能的独立,一个方法只让干一件事: 方法可以被反复的重新的调用 减少代码的重复,有利于代码的维护,减少团队开发的成本提高开发的效 ...

  5. java ubuntu 14.04,Ubuntu 14.04安装java的方法

    摘要 腾兴网为您分享:Ubuntu 14.04安装java的方法,掌上电力,虚拟按键,新东方,小度等软件知识,以及公务用车平台,手机秀色直播,新视觉影院,浩辰cad批量打印,bartender2016 ...

  6. java中方法的参数传递

    java中方法的参数传递方式只有一种:值传递: 对于基本类型来说,传递的是实参的副本(值传递),故在方法内修改传递进来的值并不会影响实参本身: 对于引用类型来说,传递进来的是引用变量的副本(也是值传递 ...

  7. Java中方法重载和方法重写的区别

    文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...

  8. java中que_重写java Eques()方法-不工作吗?

    重写java Eques()方法-不工作吗? 我遇到了一个有趣的(非常令人沮丧的)问题equals()方法,它导致了我认为经过良好测试的类崩溃,并导致了一个错误,我花了很长时间才找到它. 为了完整起见 ...

  9. 几种任务调度的 Java 实现方法与比较--转载

    前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务.本文由浅入深介绍四种任务调度的 Java 实现: Timer ScheduledExecutor 开源工具包 Quartz ...

  10. Java 获得方法调用者名称

    2019独角兽企业重金招聘Python工程师标准>>> Java 获得方法调用者名称 博客分类: java public static void getMSG() {StackTra ...

最新文章

  1. 12款顶级SIEM工具比较与评级
  2. 素数计算之埃氏筛法、欧拉筛法
  3. jQuery选择器之可见性过滤选择器Demo
  4. 今天在网上看到一个帖子,怎么样锻炼自己的大脑
  5. 埃斯顿驱动器参数设置_驱动器参数设置讲解(伺服步进)
  6. 【转】C#中使用TransactionScope类(分布式事务) 和 锁
  7. 减治法解决约瑟夫斯问题(JAVA)
  8. Java树数据结构? [关闭]
  9. C语言和C++的区别到底是什么?
  10. 算法 排序 python 实现--堆排序
  11. Google 出售 Performics
  12. 微信小程序轮播图(详细)
  13. 做公文流转的具体思路
  14. 51单片机温控风扇仿真原理图 C语言程序,AT89C51单片机的电风扇控制系统设计+流程图+仿真图.doc...
  15. php一元二次方程求根,JavaScript_在线一元二次方程计算器实例(方程计算器在线计算),复制代码 代码如下:htmll - phpStudy...
  16. 廖宇靖正式回应陈晓旭之子传闻啦~
  17. 服务器多开系统,服务器多开虚拟机操作系统
  18. Spritekit中如何判断触摸点击的精灵
  19. 空旷的室外如何安装摄像头?室外线缆布置十项细则
  20. Python中对文件的测试

热门文章

  1. 萤火虫小程序_新款预览 | 原创森林系列 冰川上 / 小程序改版啦。
  2. bat脚本注释多行_批处理中的行,段注释
  3. AMS1117手册解析
  4. 代码安全之代码混淆及加固(Android)
  5. H264的RBSP类型之AUD
  6. html5制作多彩照片墙,照片墙不是乱贴的,教你1分钟打造高逼格照片墙!
  7. 紫光m300 路由器与磊科ni360 q360 nr235 ddwrt tomato等互刷折腾备忘
  8. 中国农业银行总行西安成都软件开发中心笔试面试流程
  9. android 8187驱动 win7,8187无线网卡驱动,教您Realtek瑞昱8187无线网卡驱动
  10. 中国IP库(2022年最新版-包含港澳台地区)