当前位置: 首页 > news >正文

【Compose multiplatform教程09】【组件】Image组件

查看全部组件

Image

  • 功能说明:能够加载并显示图片,支持本地资源和网络资源,可对图片的大小、缩放方式、裁剪等属性进行设置,使图片以合适的方式展示在界面中,增强界面的视觉效果。
  • 示例场景:在应用的启动页展示品牌 logo;在商品列表页面显示商品图片;用于设置界面的背景图片,营造特定的视觉氛围。
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.ColorMatrix
import androidx.compose.ui.graphics.ColorMatrixColorFilterimport androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.unit.dp
import kotlinmultiplatform.composeapp.generated.resources.Res
import kotlinmultiplatform.composeapp.generated.resources.ic_launcher
import org.jetbrains.compose.resources.InternalResourceApi
import org.jetbrains.compose.resources.painterResourceclass ImageDemo {@Composablefun ImageExample() {@OptIn(InternalResourceApi::class)val imageResource = painterResource(Res.drawable.ic_launcher)Column {// 基本图像显示,填充最大宽度,固定高度,设置边距Image(painter = imageResource,contentDescription = "示例图片",modifier = Modifier.fillMaxWidth().height(200.dp).padding(16.dp))// 调整图像内容缩放方式为适应容器(保持纵横比)Image(painter = imageResource,contentDescription = "示例图片 - 适应容器",contentScale = ContentScale.Fit,modifier = Modifier.fillMaxWidth().height(200.dp).padding(16.dp))// 调整图像内容缩放方式为填充容器(可能拉伸)Image(painter = imageResource,contentDescription = "示例图片 - 填充容器",contentScale = ContentScale.FillBounds,modifier = Modifier.fillMaxWidth().height(200.dp).padding(16.dp))// 应用颜色滤镜,例如将图像变为灰度图val colorMatrix = ColorMatrix().apply { setToSaturation(0f) }val colorFilter = ColorMatrixColorFilter(colorMatrix)Image(painter = imageResource,contentDescription = "示例图片 - 灰度",colorFilter = colorFilter,modifier = Modifier.fillMaxWidth().height(200.dp).padding(16.dp))// 裁剪图像,显示中心部分(示例中假设原始图像较大)Image(painter = imageResource,contentDescription = "示例图片 - 裁剪",contentScale = ContentScale.Crop,modifier = Modifier.fillMaxWidth().height(200.dp).padding(16.dp))}}
}


http://www.mrgr.cn/news/81609.html

相关文章:

  • JS 数组创建、访问、常用方法
  • springboot中Jackson库和jsonpath库的区别和联系。
  • mEssentials Handwritten — Motionvfx 75个复古潦草手写涂鸦风格文字标题动画排版效果转场FCPX插件
  • uniapp小程序实现弹幕不重叠
  • elasticsearch 杂记
  • Python机器学习笔记(十一、特征提取)
  • 3. Kafka入门—安装与基本命令
  • Vue2:v-for创建echart图表时不能使用动态ref,要使用动态id
  • 关于studywolf_control动态运动原语
  • C#实现图像骨架化(ZhangSuen细化算法)
  • 【形式化验证latency】2.AADL项目结构及语法(一)
  • Qt学习记录
  • android13 系统文字大小和显示大小的修改
  • AI科研助手开发总结:向量与数据权限的应用(三)
  • 【Linux】编写简易shell 深度理解命令行解释器 环境变量 内建命令
  • 数据库概论
  • 将一个组件的propName属性与父组件中的variable变量进行双向绑定的vue3(组件传值)
  • SpringCloudAlibaba实战入门之路由网关Gateway初体验(十)
  • 【可靠有效】springboot使用netty搭建TCP服务器
  • 《机器学习》从入门到实战(1)
  • 《机器学习》——KNN算法
  • QT集成intel RealSense 双目摄像头
  • 新浪微博C++面试题及参考答案
  • 细说EEPROM芯片24C02的基础知识及其驱动程序设计
  • 【达梦数据库】小版本升级之bin文件替换
  • 是德 皮安表Keysight B2980 系列常用指令 附带说明书原件