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

【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.ColorMatrixColorFilter

import 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.painterResource

class ImageDemo {

    @Composable
    fun 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.kler.cn/a/453803.html

相关文章:

  • Effective C++ 条款 04:确定对象被使用前已先被初始化
  • flask后端开发(9):ORM模型外键+迁移ORM模型
  • Java重要面试名词整理(七):分库分表
  • redis使用注意哪些事项
  • 深入理解Nginx工作原理及优化技巧
  • 子网掩码计算route命令
  • Spark常用的转化操作和动作操作详解
  • Linux系统编程——理解系统内核中的信号捕获
  • 深度学习-76-大模型量化之压缩映射方法和量化校准方法简介
  • mybatis SqlSessionFactory
  • Java配置文件的使用-相同信息在不同环境的赋值访问
  • 解决在windows中mysql安装服务后启动服务失败的问题
  • 求两大数和
  • 软件开发中 IT 人力外包驻场有哪些优点
  • 《Opencv》基础操作详解(2)
  • 【电商搜索】文档的信息论生成聚类
  • CSS系列(33)-- Perspective详解
  • 搜索模拟版!!!(自创)
  • C/C++ 数据结构与算法【树和二叉树】 树和二叉树,二叉树先中后序遍历详细解析【日常学习,考研必备】带图+详细代码
  • 电压控制环与电流控制环