热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flutter画笔(Paint)、绘制直线(drawLine)

先正确的评判自己,才有能力评断他人。你是否欺骗别人,或是自己?想清楚再回答。三思而后行的人,很少会做错事情。企图说服不用大脑

先正确的评判自己,才有能力评断他人。
你是否欺骗别人,或是自己?想清楚再回答。
三思而后行的人,很少会做错事情。
企图说服不用大脑的人,是徒劳无功。
认为整个世界都错的人,极可能错在自己。 


drawLine(绘制直线)

 

drawLine(Offset p1, Offset p2, Paint paint)

Offset【off 开始或结束的意思;set 设置、设定的意思】

p1:绘制开始坐标【相对于原点  [0,0] 的偏移量】

p2:绘制结束坐标【相对于原点  [0,0] 的偏移量】

paint:画笔


isAntiAlias是否抗锯齿(bool)
strokeWidth画笔宽度 (double)
color画笔颜色(Color)
strokeCap延伸绘制(画 冒)
invertColors转换颜色值(二进制补码)

 


isAntiAlias=false(保留锯齿)


CustomPaint(size: Size(300, 300), //指定画布大小painter: MyPainter(),),

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = false..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/d8b9b34ac18fe9c3.png" />   

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = false..strokeisAntiAlias%3Dtrue%EF%BC%88%E6%B6%88%E9%99%A4%E9%94%AF%E9%BD%BF%EF%BC%89">isAntiAlias=true(消除锯齿)

    

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..strokestrokeWidth%EF%BC%88%E7%94%BB%E7%AC%94%E5%AE%BD%E5%BA%A6%EF%BC%89">strokeWidth(画笔宽度)

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..color = Colors.red;canvas.drawLine(Offset(50.0, 46.0), Offset(200.0,46.0), paint..strokeCap..strokestrokeCap%EF%BC%88buff%E3%80%81round%E3%80%81square%EF%BC%89">strokeCap(buff、round、square)


StrokeCap.butt(无延伸)

(画笔绘制轮廓的边缘是平的,无延伸)buff_cap.png

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke%C2%A0StrokeCap.round%EF%BC%88%E4%B8%A4%E8%BE%B9%20%E3%80%81%E5%BB%B6%E4%BC%B8%E3%80%81%E5%8D%8A%E5%9C%86%EF%BC%89"> StrokeCap.round(两边 、延伸、半圆)

(画笔绘制的开始和结束轮廓都会扩展,扩展的直线距离为画笔宽度的一半,扩展为半圆)round_cap.png

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/ac9c57b8f3c16d0b.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..strokeStrokeCap.square%EF%BC%88%E4%B8%A4%E8%BE%B9%20%E3%80%81%E5%BB%B6%E4%BC%B8%E3%80%81%E5%8D%8A%E6%AD%A3%E6%96%B9%E5%BD%A2%5B%E9%95%BF%E6%96%B9%E5%BD%A2%5D%EF%BC%89">StrokeCap.square(两边 、延伸、半正方形[长方形])

(画笔绘制的开始和结束轮廓都会扩展,扩展的直线距离为画笔宽度的一半,扩展为半正方形)square_cap.png

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/7714b52ee80099f8.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/ab81126397248977.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/29b5fca9db8fa528.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/f1d2e11ec1c794cc.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/80a9ff9c1b5a8ccb.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/4257a894304b4efa.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/8511f58baf8a1fe3.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/dc66cf6c70968c36.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/11f9a3afa7080e38.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/e5829167caccdf4d.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/a26b022553532af4.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/eef5383de9357582.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..strokeWidth=1.0..color=Colors.redAccent..invertColors=false;double rowLineCount=size.height/10.0;for(int i=0;i true;
}

 


推荐阅读
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • Flutter 开发中集成极光推送的详细步骤
    本文详细介绍了如何在 Flutter 项目中集成极光推送服务,包括配置和测试的具体步骤。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在Java编程中,初始化List集合有多种高效的方法。本文介绍了六种常见的技术,包括使用常规方式、Arrays.asList、Collections.addAll、Java 8的Stream API、双重大括号初始化以及使用List.of。每种方法都有其特定的应用场景和优缺点,开发者可以根据实际需求选择最合适的方式。例如,常规方式通过直接创建ArrayList对象并逐个添加元素,适用于需要动态修改列表的情况;而List.of则提供了一种简洁的不可变列表初始化方式,适合于固定数据集的场景。 ... [详细]
  • Flutter 屏幕适配解决方案与最佳实践
    Flutter 屏幕适配解决方案与最佳实践 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 如何在WAMP环境中更改默认的www根目录路径
    在WAMP环境中更改默认的www根目录路径,可以通过编辑Apache配置文件实现。具体步骤如下:打开D:\WampServer\bin\apache\apache2.2.22\conf\httpd.conf文件,找到并修改DocumentRoot和指令,将路径更改为新的根目录位置。保存文件后重启WAMP服务,即可生效。此方法适用于需要自定义项目部署路径的开发者。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 开发笔记:深入解析Android自定义控件——Button的72种变形技巧
    开发笔记:深入解析Android自定义控件——Button的72种变形技巧 ... [详细]
  • Visual Studio Code (VSCode) 是一款功能强大的源代码编辑器,支持多种编程语言,具备丰富的扩展生态。本文将详细介绍如何在 macOS 上安装、配置并使用 VSCode。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
author-avatar
雅蕙蕙蕙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有