Android开发系列(五)Jetpack Compose之Icon Image

   Icon是用于在界面上显示矢量图标的组件。它提供了很多内置的矢量图标,也支持自定义图标。要使用Icon组件,可以通过指定图标资源的名称或引用来创建一个Icon对象。例如,使用Icons.Default.Home来创建一个默认风格的首页图标。可以通过设置图标的大小、颜色、和点击事件等属性来自定义Icon的外观和行为。

    Image是用于在界面上显示位图图像的组件。它支持从本地资源、网络URL或图像字节数组加载图像。要使用Image组件,可以通过指定图像资源的路径或源来创建一个Image对象。

    下面分别通过示例了解这两个组件的用法。

Icon

    Icon的使用示例如下。

    在Icon函数各个参数的解析如下。

  1. imageVector表示矢量图,这里Icons.Default.Person官方图标库中的图标。
  2. contentDescription描述,用于对该图标的功能,没有描述设置为null即可。
  3. tint 色调,用于设置图标的颜色。
  4. painter, Painter是对可画东西的抽象,可以通过不同的方式创建Painter对象,painterResource从资源文件构造Painter对象。通过该方法可以使得Icon显示本地资源中的图标文件

Image

    Image的使用方法与Icon比较相似,Image主要加载图片,当图片的宽高比例与Image的不一致时,Image通过contentScale可以设置不同的缩放方式,默认情况下,如果您未指定 contentScale 选项,系统将使用 ContentScale.Fit。下面分别通过显示效果来了解这几种缩放方式

 

将缩放方式设置为裁剪模式,通过Modifier设置形状可以裁剪图片。

   第1个裁剪的形状为CircleShape为圆形。

  第2个裁剪形状为RoundCornerShape为圆角矩形。

   在裁剪形状的基础上还可以加上边框,示例如下。

    Modifier的border用于设置边框,第1个参数BorderStroke用于指定边框的宽度和颜色,第2个参数指定边框的形状。

    边框的颜色还可以使用渐变色,示例如下

    通过Brush可以定义渐变色,通过BorderStroke把渐变色设置给边框。

   最后一个示例是把图标变为黑白色,在某些特殊的日子需要显示黑白主题,这个就比较有用,不用再重新做一份黑白的图片。

  颜色矩阵 ColorFilter 选项可用于转换图片。只需对图片应用黑白滤镜,使用 ColorMatrix 并将饱和度设置为 0f,就得到黑白图片。

示例代码已上传到github,地址如下

示例代码工程地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/31638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库讲解---(数据库保护)【下】

目录 一.并发控制 1.1并发操作引发的问题 1.1.1丢失修改 1.1.2不可重复读 1.1.3读”脏“数据 1.2调度及其可串行化 1.3事务的隔离性级别 1.4封锁技术【重要】 1.4.1排他锁 1.4.2共享锁 1.5封锁协议 1.5.1一级封锁协议 1.5.2二级封锁协议 1.5.3三级封锁协议 1.5.…

rk3588 cpu npu gpu 定频 变频

网上的资料 cpu: npu: GPU: DDR:

算法——二倍随机法

概念 二倍随机法,也被称为二倍均值法,是一种在红包分配、抽奖等场景中常用的随机金额生成算法。其核心思想是通过 动态调整随机金额的范围,保证每个人抢到的金额 既具有随机性又相对公平。 但二倍随机法 很依赖随机数生成器,如果…

VMware安装及创建虚拟机

安装完成后,点击创建新的虚拟机 操作完成后就安装成功啦 ,下个教程出虚拟机Linux和xshell的连接及可能出现的问题解决方案

Centos7.9使用kubeadm部署K8S 1.27.6集群环境(内网通过代理部署)

Centos7.9使用kubeadm部署K8S 1.27.6集群环境(内网通过代理部署) 在内网借助代理服务器,使用kubeadm部署一个k8s集群,单master2worker节点,K8S版本为1.7.6,使用containerd作为容器运行时。 1. 环境信息 …

Centos+Jenkins+Maven+Git 将生成的JAR部署到远程服务器上

1、登录 没有安装的参考下面的安装步骤先安装: Jenkins安装手册 输入账号、密码登录系统。 2、新建任务 2.1 创建页面 1,“输入一个任务名称”; 2,任务类型点击“构建一个maven项目”; 3,点击“确定”,此时,构建任务创建完成。 2.2 General 1、描述:输入要部署…

Linux开发讲课7---Linux sysfs文件系统

一、sysfs文件系统介绍 Sysfs(System Filesystem)是Linux内核提供的一种虚拟文件系统,用于向用户空间公开有关设备和驱动程序的信息。它类似于/proc文件系统,但是专注于设备和驱动程序信息,而非进程信息。 Sysfs通过文…

java基于ssm+jsp 高校二手交易平台

1前台首页功能模块 高校二手交易平台,在系统首页可以查看首页、商品信息、论坛信息、新闻资讯、我的、跳转到后台、客服等内容,如图1所示。 图1系统功能界面图 用户登录、用户注册,在注册页面可以填写账号、密码、姓名、手机、身份证等信息进…

2024.06.20【读书笔记】丨生物信息学与功能基因组学(第十六章 真核生物基因组 第三部分)【AI测试版】

了解到您的需求,现在我将为您撰写关于《生物信息学与功能基因组学》的第三部分读书笔记。 《生物信息学与功能基因组学》第十六章读书笔记(第三部分) 正文(续) 真核基因组的重复性DNA序列 真核基因组中的重复性DNA…

鸿蒙开发:【组件启动规则(FA模型)】

组件启动规则(FA模型) 启动组件是指一切启动或连接应用组件的行为: 启动PageAbility、ServiceAbility,如使用startAbility()等相关接口。连接ServiceAbility、DataAbility,如使用connectAbility()、acquireDataAbili…

常微分方程算法之编程示例一(欧拉法)

目录 一、研究问题 二、C代码 三、计算结果 一、研究问题 前面几节内容介绍了常微分方程有限差分格式的推导。为加强对本专栏知识的理解,从本节开始,我们补充一些具体算例及相应的编程。 欧拉法的原理及推导请参考: 常微分方程算法之欧拉…

go的有栈和无栈

在 Go 的 HTTP 处理中,“有栈”和“无栈”通常是指处理并发请求时的不同方式。 “有栈”的方式通常是指使用传统的基于线程或协程的并发模型,每个并发请求都有自己独立的栈空间。 例如,使用标准库中的 net/http 处理并发请求,默认…

智能虚拟集群系统在酒店楼宇中的应用

随着城市化建设的不断发展,酒店楼宇等建筑规模不断扩大、地面/地下楼层不断增加。面对日益复杂的通信环境,酒店服务和管理人员对无线通信系统的稳定性、覆盖范围、话音清晰度、应急响应能力等方面均提出了更高的需求。 需求痛点 面对繁忙的工作&#x…

Python火焰锋动力学和浅水表面波浪偏微分方程

🎯要点 🎯流图可视化正弦余弦矢量场 | 🎯解空间变化边界条件二维拉普拉斯方程 | 🎯解圆柱坐标系标量场 | 🎯解一维泊松方程 | 🎯解二维扩散方程 | 🎯解火焰锋的动力学偏微分方程 | &#x1f3a…

Mysql Server配置

MySQL服务器mysqld有许多命令选项和系统变量,可以在启动时设置这些选项和变量来配置其操作。要确定服务器使用的默认命令选项和系统变量值,请执行以下命令: $> mysqld --verbose --help 该命令生成所有mysqld选项和可配置系统变量的列表…

计算机网络 MAC地址表管理

一、理论知识 1.MAC地址表:交换机使用MAC地址表来记录各MAC地址对应的端口,用于帧转发的目的。 2.老化机制:交换机会为每一条MAC地址表项设置老化时间,老化时间到期后未收到该MAC地址报文的表项将被删除,释放资源。 …

【自动驾驶】通过下位机发送的加速度、角速度计算机器人在世界坐标系中的姿态

文章目录 原始代码全局变量定义逆平方根函数四元数解算函数理论解释四元数加速度计数据归一化计算方向余弦矩阵的第三行计算误差计算并应用积分反馈应用比例反馈积分陀螺仪数据,更新四元数归一化四元数更新姿态数据整体流程原始代码 #define SAMPLING_FREQ 20.0f // 采样频率…

适用于轨道交通专用的板卡式网管型工业以太网交换机

是网管型 CompactPCI板卡式冗余环网交换机。前面板带有6个 10/100/1000Base-T(X)M12接口。后面的CPCI接口有 8个10/100/1000Base-T (X) 以太网接口。 是特别为轨道交通行业EN50155标准要求而设计的坚固型交换机。它同时具有以下特性: ● 支持2线以太网距离扩展端口&…

LeetCode 16.最接近的三数之和(C++)

链接 https://leetcode.cn/problems/3sum-closest/description/ 题目 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例1 输入&a…

五十四、openlayers官网示例LineString Arrows解析——在地图上绘制箭头

官网demo地址: LineString Arrows 这篇介绍了在地图上绘制箭头。 创建一个矢量数据源,将其绑定为draw的数据源并展示在矢量图层上。 const source new VectorSource();const vector new VectorLayer({source: source,style: styleFunction,});map.ad…