Jetpack:008-Icon与Image

news2024/11/18 20:30:40

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 Icon
    • 2.2 Image
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了Jetpack中与Button相关的内容,本章回中主要I con与Image。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们在本章回中介绍的Icon和Image主要用来显示图标和图片,这些都是程序中必不可少的内容。图标通常是小的图片或者矢量图,它通过Icon()可组合函数来实现。

图片通常都是当作背景,它通过可组合函数Image()来实现。图片和图标中显示的资源都位于drawable目录下,此外,图片资源还可以使用网络链接中的图片。不过本章回中先不作介绍。在接下来的小节中我们将详细介绍Icon与Image的使用方法。

2. 使用方法

2.1 Icon

可组合函数Icon()提供了相关的参数来控制自己,下面是常用的参数:

  • tint参数:主要用来控制图标的颜色;
  • contentDescription参数:主要图标的描述,可以设置为空;
  • painter/bitmap/imageVector参数:主要用来存放图标资源;

最后一个参数在功能上相同,不过它的类型不同,而且导致Icon()函数也不同,因此有三种重载函数。如果是drawable中的资源通常使用painter,如果是bitmap通常使用bitmap(比如把文件中的图片转换成bitmap后再显示),如果是矢量图通常使用imageVector。

2.2 Image

可组合函数Image()提供了相关的参数来控制自己,下面是常用的参数:

  • contentDescription参数:主要图标的描述,可以设置为空;
  • alignment参数:主要用来控制图片的对齐方式;
  • contentScale参数:主要用来控制图片的填充方式;
  • alpha参数:主要用来控制图片的透明度;
  • colorFilter参数:主要用来控制图片的混合颜色;
  • painter/bitmap/imageVector参数:主要用来存放图片资源;

关于contentScale参数所代码的图片填充方式,可以参考官方文档,文档中介绍了所有的填充方式并且配合有效果图。

最后一个参数的类型和Icon中同名参数和类型一样,它也会导致Iamge()函数的类型不同,因此有三种重载函数。详细用法参数Icon中的介绍。

3. 示例代码

//图标
Icon(
    //控制icon的颜色
    tint = Color.Blue,
    imageVector = Icons.Default.FavoriteBorder,
    contentDescription = null)

//图片
Image(
    painter = painterResource(id = R.drawable.ic_logo),
    contentDescription = null,
    //图片填充方式,推荐Fit
    contentScale = ContentScale.FillBounds,
)

//图片剪裁为圆形,用来创建头像时使用
Image(
    modifier = Modifier
        .size(100.dp)
        .clip(CircleShape),
    painter = painterResource(id = R.drawable.ic_logo),
    contentDescription = null,
    //图片填充方式,推荐Fit
    contentScale = ContentScale.FillBounds,
)

//图片剪裁为圆角矩形
Image(
    modifier = Modifier
        .size(100.dp)
        .clip(RoundedCornerShape(16.dp))
        .aspectRatio(16f / 9f),
    painter = painterResource(id = R.drawable.ic_logo),
    contentDescription = null,
    //图片填充方式,推荐Fit
    contentScale = ContentScale.FillBounds,
)

我们在上面的代码中演示了Icon的用法,代码中的图标来自SDK自带的图标,我们将其从默认的黑色修改为蓝色。

Image的演示代码包含三个类型,一个是正常的图片显示,另外两个使用修饰器和contentScale参数对图片进行了剪裁,进而实现了圆形头像和圆角矩形的效果,下面是程序的运行效果图。
在这里插入图片描述

4. 内容总结

最后,我们对本章回中的内容做一个全面的总结:

  • 图标和图片通过可组合函数Icon和Iamge实现,它们的用法类似;
  • 图标或者图片的类型不同,使用的可组合函数也不同,一共有三种可组合函数;
  • 显示图片时可以通过参数对图片进行剪裁或者渲染,进而实现不同的图片显示效果;

看官们,关于Jetpack中Icon与Image组件相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

graphviz报错

报错如下: graphviz.backend.ExecutableNotFound: failed to execute dot, make sure the Graphviz executables are on your systems PATH 大家习惯pip install graphviz去安装,但是graphviz是个软件,不能单独用Pip安装。 1、下载安装 G…

英语——语法——从句——非谓语动词——笔记

一、1定义 定义: 非谓语动词不是真正意义上的谓语动词,即在句中都不能单独作谓语。 非谓语动词主要有以下三种形式: 技巧:分析句子是先缩短为主谓宾,某人做某事,其他成分都是修饰限定作用。要么修饰明代词…

ECharts的基本使用

目录 一、使用前提 1、安装 2、创建文件 二、LineView.vue文件【相当于一个组件】 1、导入 2、methods方法下写init(){}方法进行选择 3、methods方法下写setOptioin(option) 4、init()函数调用 5、整合完整代码 三、IndexView.vue文件【实现组件引入显示】 1、引入 …

P34~36第八章相量法

8.1复数 复数可表示平面矢量、也可表示正弦量。特别是: 当复数表示正弦量的时候,此时复数称为相量。 8.2复数运算 复数除法也可看做乘法,乘法的几何意义是旋转(辐角相加)( e^x e^y e^xy),同时伸缩(模变…

计算机操作系统-第七天

1、计算机操作系统的结构(续集) 分层结构 特性:最底层是硬件,最高层是用户接口,每层只可使用更低的相邻层所提供的功能接口(只有第一层可以直接操作硬件,第二次只能使用第一层提供的功能接口..…

英语——语法——从句——状语从句——笔记

一、概念 状语从句(Adverbial Clause)是指句子用作状语时,起副词作用的句子。状语从句中的从句可以修饰谓语。 状语从句根据其作用可分为时间、地点、原因、条件、目的、结果、让步、方式和比较等九 种状语从句。状语从句一般由连词(从属连词…

01_51单片机软件安装和使用

step1:keil软件安装 安装keil5:安装keil5 新用户进入官网下载需要先注册 官网:官网 嵌入式51开发资源百度网盘:江协科技 网盘地址:网盘地址 提取码:gdzf 桌面上出现该图标表示安装完成 双击图标打开对软件进行破…

向量空间概述

向量空间 向量空间与子空间 当存在这样的一组向量集合 V V V,其中 v , u , w v,u,w v,u,w分别为集合 V V V中的元素,以及存在标量c,d u v ∈ V uv \in V uv∈V u v …

【算法练习Day21】组合剪枝

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 组合剪枝总结: …

c语言练习88::移除链表元素

移除链表元素 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 代码: /*** Definition for sing…

基于Springboot宠物医院管理系统

项目环境: mysql5.7 jdk1.8

CSS之实现线性渐变背景

1. background: linear-gradient() background: linear-gradient是CSS中用于创建线性渐变背景的属性,这个属性允许你定义一个在元素的背景中进行渐变的效果,可以从一个颜色过渡到另一个颜色。 基本语法 background: linear-gradient(direction, color-…

Vue中this.$set()解决页面不更新问题

Vue中的this.$set()用于解决数据更新后页面没有更新的问题,因为Vue2中的双向数据绑定是通过object.defineproperty()实现的。通过get和set方法,获取时触发get,更改时触发set。但是对于对象属性的删除和添加与根据数组的下标去修改数据的时候是…

香港高才通通过后要做什么?

网上说现在香港高才通审核要一个月,所以最近没有每天关注,以为还要很久,结果今天打开邮箱,发现昨天就已经收到了我们一家人都审核通过的邮件,哈哈,开心… 今天整理了一下后续要做得事情: 缴费…

【LeetCode刷题(数据结构与算法)】:二叉树的中序遍历

给定一个二叉树的根节点root 返回它的中序遍历 示例1: 输入:root [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root [] 输出:[] 示例 3: 输入:root [1] 输出:[1] 这里…

常见的噪声:高斯、泊松和椒盐噪声

一、什么是图像噪声? 噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块。一般噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息。通俗的说就是噪声让图像不清楚。 二、噪声来源—两个方面 &#xf…

数据结构 二叉树OJ题

数据结构 二叉树OJ题 文章目录 数据结构 二叉树OJ题1. 检查两颗二叉树是否相同2. 判断树是否为另一个树的子树3. 翻转二叉树4. 平衡二叉树5. 对称二叉树6. 二叉树遍历7. 二叉树层序遍历8. 最近公共祖先9. 二叉树创建字符串10. 非递归方式实现前序遍历11. 非递归方式实现中序遍历…

动态内存管理+柔性数组+经典笔试题

💓博客主页:江池俊的博客⏩收录专栏:C语言进阶之路👉专栏推荐:✅C语言初阶之路 ✅数据结构探索💻代码仓库:江池俊的代码仓库🎉欢迎大家点赞👍评论📝收藏⭐ 文…

springboot 使用RocketMQ客户端生产消费消息DEMO

创建springboot项目省略 项目依赖 注意&#xff1a;当前客户端版本是 5.1.3 &#xff0c;安装的rocketmq服务的版本要与其对应 <properties><java.version>11</java.version><rocketmq-client-java-version>5.1.3</rocketmq-client-java-version&…

EasyX趣味化编程note6,图片操作及文字

大家好这里是Dark FlameMaster 如果说前边所学的内容会给我们带来一定的乐趣&#xff0c;那么今天这篇可以说是最好玩的了&#xff0c;我们可以进一步改进写出小程序的好玩度&#xff0c;你甚至可以把身边的人或事写进一个小程序&#xff0c;制作一个小游戏&#xff0c;恶搞身边…