news 2025/12/29 12:53:09

android开发compose系列之Icon

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
android开发compose系列之Icon

文章目录

  • 前言
  • 一、使用
  • 二、官方Icon图库的引入

前言

Icon是compose中专门用来展示小图标的组件,传统的View体系中没有对应的控件,该组件支持三种不同类型的图片设置:imageVector矢量图(可显示SVG格式的图标)、ImageBitmap位图(可显示JPG、PNG等格式图标)、Painter自定义画笔(可直接用画笔再Canvas上绘制图标,也可以同res/下的图片资源)


一、使用

运行结果如图:

常用的三种设置图标方式:

Column(){//垂直排列的布局//加载矢量图Icon(imageVector=ImageVector.vectorResource(R.drawable.icon_favorite_svg),"收藏矢量图",//无障碍描述tint=Color.Red)//对矢量图的颜色改变//加载jpg/png图Icon(bitmap=ImageBitmap.imageResource(R.drawable.icon_favorite_bitmap),"收藏的位图",tint=Color.Unspecified// 关键:禁用默认的黑色色调,因为该图片是黑色轮廓透明背景)//加载任意类型图标Icon(painter=painterResource(R.drawable.icon_favorite_svg),contentDescription="收藏的任意类型资源")}

二、官方Icon图库的引入

Material 包有很多预置的矢量图标,通常可以直接调用该库中的矢量图进行设置,Material 包每个图标都提供了五种风格可供使用,包括 Filled, Outlined,Rounded,Sharp,Two tone 等,都可以通过 Icons.xxx.xxx 的方式调用,具体可参考如下:

Icon(imageVector=Icons.Default.CheckCircle,//官方默认的矢量图库,只提供部分图标contentDescription="无障碍描述",tint=Color.Red//图标颜色的设置)Icon(imageVector=Icons.Outlined.CheckCircle,//勾勒轮廓类型contentDescription="无障碍描述")Icon(imageVector=Icons.Filled.CheckCircle,//图形填充类型contentDescription="无障碍描述")Icon(imageVector=Icons.Rounded.CheckCircle,//端点均为圆角类型contentDescription="无障碍描述")Icon(imageVector=Icons.Sharp.CheckCircle,//端点均为尖角类型contentDescription="无障碍描述")Icon(imageVector=Icons.TwoTone.CheckCircle,//双色配合角类型contentDescription="无障碍描述")

注:
Material 包只提供了部分图标,更多需要可引入扩展库:implementation
“androidx.compose.material:material-icons-extended:$compose_version”(与当前项目版本号一致即可)
Material版本号情况查询:https://central.sonatype.com/search?q=material-icons-extended
Material设计库全部图标查询:https://fonts.google.com/icons?selected=Material+Symbols+Outlined:translate:FILL@0;wght@400;GRAD@0;opsz@24&icon.size=24&icon.color=%231f1f1f&icon.platform=android&icon.query=translate

可在该库中找到所需矢量图,根据其命名找到对应图标

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/14 21:16:28

重构智慧书-第13条:先知他人别有所图的心思,再伺机行事

一、原文呈现先知他人别有所图的心思,再伺机行事尘世人生本是一场除邪斗恶的战争。狡诈者的武器无非是玩弄种种心计,它常玩的把戏是声东击西。假装瞄准一个目标,煞有介事地佯攻一番,其实心底里却在暗自瞅准别人不留心的靶子,然后伺…

作者头像 李华
网站建设 2025/12/22 8:56:21

函数介绍及使用

函数 一、为什么需要函数? function,是被设计为执行特定任务的代码块 说明: 函数可以把具有相同或相似逻辑的代码“包裹”起来,通过函数调用执行这些被“包裹”的代码逻辑,这么做的优势是有利于精简代码方便复用。 比如…

作者头像 李华
网站建设 2025/12/14 21:10:54

Unity ReferenceFinder插件 多选资源查找bug解决

GitHub地址 当选中多个资源 查找引用时,有的资源引用不显示,解决方法: 把ReferenceFinderWindow脚本原来的 while(stack.Count > 0) { … if (!memo.ContainsKey(current[0])) { … } } 替换为下面这段。 // 替换原来的 while(stack.Cou…

作者头像 李华
网站建设 2025/12/26 5:32:39

AI 工具实战测评:它们到底是“生产力工具”,还是“智商税”?

这两年 AI 工具的数量,已经多到有点离谱了。 从写代码、写文档,到做 PPT、画流程图,几乎每个环节都能塞进一个 AI。问题也随之而来: 这些工具真的能提高效率吗?还是只是“看起来很厉害”?这篇文章不聊概念、…

作者头像 李华
网站建设 2025/12/14 21:05:59

感应电机转子磁场定向FOC仿真与异步电机调速控制仿真那些事儿

感应电机转子磁场定向FOC仿真,异步电机调速控制仿真。 电机参数是山河智能SWFE15型起重量1.5吨电动叉车使用的实际电机。 采用转速电流双闭环,防饱和PI调节器,SVPWM发波,通过iq电流查表实现简单的弱磁控制。 测试工况涵盖带负载启…

作者头像 李华
网站建设 2025/12/27 3:01:33

day33(12.14)——leetcode面试经典150

150. 逆波兰表达式求值 150. 逆波兰表达式求值 题目: 题解: class Solution {public static boolean isNumeric(String str) {return str ! null && str.matches("-?\\d");}public int evalRPN(String[] tokens) {//将数字放在一个…

作者头像 李华