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

相关文章

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB