Jectpack-Compose 基础组件 : Text - TextStyle

2024-08-21 02:32

本文主要是介绍Jectpack-Compose 基础组件 : Text - TextStyle,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Text - TextStyle

文本的样式配置,如颜色、字体、行高等和 Text 组件一样。

一般属性查看:Jectpack-Compose 基础组件 : Text

下面介绍不一样的属性。

fontSynthesis: FontSynthesis?

在提供的自定义字体系列中找不到请求的字体粗细或样式时,是否合成字体粗细和/或样式。

看下 FontSynthesis

enum class FontSynthesis {/*** 关闭字体合成。如果[FontFamily]中不存在粗体或倾斜的面,则不会合成它们*/None,/*** 如果[FontFamily]中没有粗体字体,则只合成粗体字体。不会合成倾斜字体。*/Weight,/*** 如果[FontFamily]中没有粗体字体,则只合成粗体字体。不会合成倾斜字体。*/Style,/*** 如果[FontFamily]中没有粗体和倾斜字体,则系统会综合这两种字体*/All;internal val isWeightOn: Booleanget() = this == All || this == Weightinternal val isStyleOn: Booleanget() = this == All || this == Style
}

shadow: Shadow?

应用于文本的阴影效果。

看下 Shadow

class Shadow(// 阴影颜色@Stableval color: Color = Color(0xFF000000),// 偏移量@Stableval offset: Offset = Offset.Zero,// 阴影半径@Stableval blurRadius: Float = 0.0f
)

示例代码

    val textStyle = TextStyle(shadow = Shadow(color = Color.Red, offset = Offset(0f, 2f), blurRadius = 5f),)Text(text = "你好 $name!",style = textStyle,)

实际效果
在这里插入图片描述
Offset 函数

Offset(x: Float, y: Float)

同安卓坐标系一样,左上角为0点
x:为x轴偏移量。正数往右偏移,负数往左偏移
y:为y轴偏移量。正数往下偏移,正数往上偏移

Offset(-2f, -2f) 实际效果:
在这里插入图片描述
Offset(2f, 2f) 实际效果:
在这里插入图片描述

textIndent: TextIndent?

指定段落的缩进。

参数:
firstLine—应用于第一行的缩进量。
restLine—应用于除第一行以外的每行的缩进量。

class TextIndent(val firstLine: TextUnit = 0.sp,val restLine: TextUnit = 0.sp
)

效果展示:

    val textStyle = TextStyle(textIndent = TextIndent(40.sp, 20.sp))Text(text = "你好 $name!你好 $name!你好 $name!你好 $name!你好 $name!你好 $name!你好 $name!你好 $name!你好 $name!你好 $name!",style = textStyle,)

在这里插入图片描述

textGeometricTransform: TextGeometricTransform?

几何变换。

/** 
* 定义文本的几何变换。
* 参数:
* scaleX-文本在水平方向上的比例。默认值为1.0f,即无缩放。
* skewX-文本在水平方向上的剪切。(x,y)处的像素(y是基线上方的距离)将转换为(x+y*skewX,y)。默认值为0.0f,即无倾斜。
*/
@Immutable
class TextGeometricTransform(val scaleX: Float = 1.0f,val skewX: Float = 0f
) 

先试试 scaleX 的效果:

    val textStyle = TextStyle(textGeometricTransform = TextGeometricTransform(2f, 0f))Text(text = "你好 $name",style = textStyle,)

在这里插入图片描述
文字被拉长变扁了,变胖了

    val textStyle = TextStyle(textGeometricTransform = TextGeometricTransform(0.5f, 0f))Text(text = "你好 $name",style = textStyle,)

在这里插入图片描述
文字被挤扁了~~,变瘦了

scaleX 的默认值为 1.0f
综上两个测试可以得出: scaleX > 1.0f 时文字会拉长, scaleX < 1.0f 时会挤扁~~

再试试 skewX

    val textStyle = TextStyle(textGeometricTransform = TextGeometricTransform(1f, 1f))Text(text = "你好 $name",style = textStyle,)

在这里插入图片描述

    val textStyle = TextStyle(textGeometricTransform = TextGeometricTransform(1f, 1f))Text(text = "你好 $name",style = textStyle,)

在这里插入图片描述
skewX 的默认值为 0f
综上两个测试可以得出: skewX > 0f 时文字会向左倾斜,并且若倾斜后文字超出 Text 容器的边缘时会被裁切, skewX < 1.0f 时会向右倾斜,并且若倾斜后文字超出 Text 容器的边缘时会被裁切

这篇关于Jectpack-Compose 基础组件 : Text - TextStyle的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091864

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

PyQt6中QMainWindow组件的使用详解

《PyQt6中QMainWindow组件的使用详解》QMainWindow是PyQt6中用于构建桌面应用程序的基础组件,本文主要介绍了PyQt6中QMainWindow组件的使用,具有一定的参考价值,... 目录1. QMainWindow 组php件概述2. 使用 QMainWindow3. QMainW

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4