展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 系统应用 > 8.3.14 Paint几个枚举/常量值以及ShadowLayer阴影效果

8.3.14 Paint几个枚举/常量值以及ShadowLayer阴影效果

本节引言: 在 Android 基础入门教程——8.3.1 三个绘图工具类详解 Paint 的方法参数那一节里,其实已经接触过几个很关键的东西:Paint.Style、Paint.Cap、Paint.Join 等。它们本质上都是 Paint 里的枚举值,很多相关效果,正是通过设置这些枚举值来完成的。

本文目录

    本节引言:

    在 Android 基础入门教程——8.3.1 三个绘图工具类详解 Paint 的方法参数那一节里,其实已经接触过几个很关键的东西:Paint.Style、Paint.Cap、Paint.Join 等。它们本质上都是 Paint 里的枚举值,很多相关效果,正是通过设置这些枚举值来完成的。比如,Style 决定画笔样式,Join 决定图形的结合方式,等等。接下来,就顺着这个思路进一步往里看,直接走进 Paint 的源码,把这些枚举值逐个讲清楚;同时,也会顺带说一说 ShadowLayer,看看它是怎么给 Paint 设置阴影效果的。打开 Paint 类源码后,能看到的就是下面这些枚举值:

    好了,不BB,开始本节内容!

    1.get枚举用法:

    不知大家对枚举陌生还是熟悉,这里把贴下Paint.Style相关的调用代码(带有参构造方法的枚举) ,让大家体会体会:

    public enum Style {
        //定义枚举,通过括号赋值
        FILL            (0),
        STROKE          (1),
        FILL_AND_STROKE (2);
        //有参构造方法
        Style(int nativeInt) {
            this.nativeInt = nativeInt;
        }
        final int nativeInt;
    }
    //设置画笔Style的方法
    public void setStyle(Style style) {
        native_setStyle(mNativePaint, style.nativeInt);
    }
    //JNI设置画笔风格的方法,这里我们无需关注
    private static native void native_setStyle(long native_object, int style);

    下面我们一一来解释这些枚举值的作用!

    1.Paint.Style

    作用:画笔的样式 可选值:

    • FILL:填充内部(默认)
    • STROKE:只描边
    • FILL_AND_STROKE:填充内部与描边

    方法调用:setStyle(Paint.Style style) 对应效果:

    2.Paint.Cap

    作用:笔触风格,设置画笔始末端的图形(画笔开始画的第一点与最后一点) 可选值:

    • BUTT:笔触是长方形且不超过路径(默认)
    • ROUND:笔触是圆形
    • SQUARE:笔触是正方形

    方法调用:setStrokeCap(Paint.Cap cap)

    对应效果:平时我们直接画的是第一个,其他两个会比普通的多一点而外的区域,第二个 是圆角,第三个是矩形!

    3.Paint.Join

    作用:设置接合处的状态,比如你的线是由多条小线拼接而成,拼接处的形状 可选值:

    • MITER:接合处为锐角(默认)
    • ROUND:接合处为圆弧
    • BEVEL:接合处为直线

    方法调用:setStrokeJoin(Paint.Join join)

    一般圆弧用得多,可参见之前的擦掉美女衣服Demo的显示

    另外还有个setStrokeMiter(float miter)是设置笔画的倾斜度,miter > = 0; 如:小时候用的铅笔,削的时候斜与垂直削出来的笔尖效果是不一样的。 主要是用来设置笔触的连接处的样式。可以和setStrokeJoin()来比较比较。

    4.Paint.Align

    作用:设置绘制文本的对其方式,就是相对于绘制文字的[x,y]起始坐标 可选值:

    • LEFT:在起始坐标的左边绘制文本
    • RIGHT:在起始坐标的右边绘制文本
    • CENTER:以其实坐标为中心绘制文本

    方法调用:setTextAlign(Paint.Align align)

    对应效果:另外可调用setTextSize()设置绘制文本的大小~

    5.Paint.FontMetrics和Paint.FontMetricsInt

    字体属性及测量,另外这两个方法是一样的,只是后者取到的值是一个整形, 这里我们选FontMetricsInt来给大家讲解下,有下面这五个常量值,这里参考的基准点是: 下划线的位置(Baseline)

    • top:最高字符到baseline的距离,即ascent的最大值
    • ascent:字符最高处的距离到baseline的值
    • descent:下划线到字符最低处的距离
    • bottom:下划线到最低字符的距离,即descent的最大值
    • leading:上一行字符的descent到下一行的ascent之间的距离

    我们看几个图帮助理解下:

    然后我们随意画一串字母,把这些值打印出来: canvas.drawText("abcdefghijklnmopqrstuvwxyz", 400, 400, mPaint1);
    Log.e("HEHE", mPaint1.getFontMetricsInt().toString());
    运行下,我们可以看到,打印出来的Log如下:

    看完思考思考,画一画,应该不难理解!这里我们知道下就好,如果你想更 深入研究,可以参考下这篇:Android字符串进阶之三:字体属性及测量(FontMetrics)

    6.ShadowLayer设置阴影效果

    我们在TextView那一节就教过大家为TextView的文本设置阴影效果,而Paint其实也提供了设置 阴影效果的API:setShadowLayer(float radius, float dx, float dy, int shadowColor)

    参数:radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,shadowColor为阴影的颜色 我们可以写个非常简单的句子验证下:

    mPaint1.setShadowLayer(5,0,0,Color.BLACK);
    canvas.drawText("毕竟基神~", 400, 400, mPaint1);    //绘制文字

    效果如下:

    另外我们还可以调用clearShadowLayer()来清除这个阴影层~

    本节小结:

    这一节主要把 Paint 里几个常见的枚举值、静态常量,以及通过 ShadowLayer 给画笔加阴影、调用 clearShadowLayer() 清除阴影层这几件事顺了一遍。说到底,这部分内容并不算复杂,源码和文档里其实都写得很清楚。真遇到拿不准的地方,最有效的办法还是自己动手写个 Demo 跑一遍,很多原本看着抽象的点,试过之后反而一下就明白了。这里先讲到这儿。

    另外,可能你不知道在哪看到了我的QQ,但是可以的话尽量加群好么,平时也要上班, 一个两个还好,一堆人,有心无力,有时帮忙解决问题,结果一天什么都没做,望各位体谅, 有问题加请加小猪群,群管理都是非常热心的:421858269~

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Postman macOS版
    Postman macOS版

    Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。

    Docker Desktop macOS版
    Docker Desktop macOS版

    Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。

    Android Studio macOS版
    Android Studio macOS版

    Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。

    Xcode macOS版
    Xcode macOS版

    Xcode 是苹果面向 Mac 提供的官方集成开发环境,将代码编辑、项目构建、SwiftUI 实时预览、设备模拟、自动化测试、断点调试、性能分析和应用分发整合在同一套工作流中,适合开发与维护 iPhone、iPad、Mac、Apple Wa

    JetBrains WebStorm macOS版
    JetBrains WebStorm macOS版

    JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

    PhpStorm macOS版
    PhpStorm macOS版

    PhpStorm 是 JetBrains 推出的专业 PHP 集成开发环境,可在 Mac 上完成代码编写、智能检查、重构、调试、测试和数据库管理。它支持主流 PHP 框架、Composer、Git、Docker 与远程解释器。

    JetBrains PyCharm macOS版
    JetBrains PyCharm macOS版

    JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。

    JetBrains IntelliJ IDEA macOS版
    JetBrains IntelliJ IDEA macOS版

    IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。

    Visual Studio Code macOS版
    Visual Studio Code macOS版

    Visual Studio Code 是微软提供的免费代码编辑器,支持 macOS,并为 Intel 与 Apple 芯片 Mac 提供适配版本。软件集代码编辑、调试、Git 源代码管理、集成终端和扩展市场于一体。

    REAPER macOS版
    REAPER macOS版

    REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。

    Adobe Audition macOS版
    Adobe Audition macOS版

    Adobe Audition 是面向播客、影视后期、音乐制作及内容创作者的专业音频工作站,提供波形精修、多轨录制与混音、频谱编辑、降噪修复、响度匹配和效果处理工具,并可与 Adobe Premiere 协同完成视频声音制作。

    Pro Tools macOS版
    Pro Tools macOS版

    Pro Tools 是 Avid 推出的专业数字音频工作站,覆盖多轨录音、无损剪辑、MIDI 编曲、插件处理、自动化混音及声音与画面同步等工作。它拥有 Intro、Artist、Studio 和 Ultimate 等方案。

    WINDOWS 更多
    PixPix 网页版
    PixPix 网页版

    PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。

    Postman Windows版
    Postman Windows版

    Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等

    Docker Desktop Windows版
    Docker Desktop Windows版

    Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。

    Android Studio Windows版
    Android Studio Windows版

    Android Studio 是 Google 面向 Android 应用开发提供的官方集成开发环境,以 IntelliJ IDEA 为基础,集成智能代码编辑、Gradle 构建、设备模拟、界面预览、调试测试及性能分析工具,

    JetBrains WebStorm Windows版
    JetBrains WebStorm Windows版

    WebStorm 是 JetBrains 面向 JavaScript、TypeScript 和现代 Web 技术打造的集成开发环境。它提供项目级代码分析、智能补全、安全重构、导航搜索,并集成调试、测试、终端、Git 与常用前端工具,

    JetBrains PhpStorm Windows版
    JetBrains PhpStorm Windows版

    PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,

    JetBrains PyCharm Windows版
    JetBrains PyCharm Windows版

    PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,

    JetBrains IntelliJ IDEA Windows版
    JetBrains IntelliJ IDEA Windows版

    JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,

    Visual Studio Code Windows版
    Visual Studio Code Windows版

    Visual Studio Code 是微软推出的免费代码编辑器,Windows 版集成智能补全、代码导航、调试、终端和版本控制,并可通过扩展添加语言、格式化及远程开发能力。它启动较快、配置灵活,

    REAPER Windows版
    REAPER Windows版

    REAPER 是 Cockos 推出的数字音频工作站,适用于录音、MIDI 编曲、音频编辑、混音、母带制作及声音设计。软件安装包小巧,支持多轨录制、灵活路由、自动化、第三方插件和脚本扩展,并提供完整功能的 60 天免费评估期。

    Adobe Audition Windows版
    Adobe Audition Windows版

    Adobe Audition 是面向播客、影视后期、广播与音乐制作的专业音频工作站,提供波形编辑、多轨混音、频谱分析、录音、降噪修复和效果处理等功能。Windows 版通过 Adobe Creative Cloud 安装和管理,

    Pro Tools Windows版
    Pro Tools Windows版

    Pro Tools 是 Avid 推出的专业数字音频工作站,提供多轨录音、音频剪辑、MIDI编曲、插件处理、自动化混音及影视声音制作能力。它适合音乐人、录音师、制作人和音频后期团队使用,并提供免费入门版、订阅方案及永久授权选择。