Jetpack Compose 之 Image

基本使用

Image 用来显示一张图片,Image有三个构造方法:

  • 传入一个bitmap:ImageBitmap
Image(bitmap = ImageBitmap.imageResource(id = R.mipmap.ic_launcher),
     contentDescription = "icon"
)
  • 传入一个imageVector: ImageVector矢量图片;
  • painter 图片资源,使用painterResource来获取drawable或者mipmap下的图片,contentDescription内容描述,在无障碍时使用,可以为空:
Image(
    painter = painterResource(R.mipmap.ic_launcher),
    contentDescription = "icon"
)
  • ImageBitmapImageVector最终都是使用painter来处理显示图片的

alignment

在容器中的对齐方式,Alignment.**Center**默认时居中对齐,具体样式可以参Alignmen这个类;

Image(painter = painterResource(R.mipmap.ic_launcher),
     contentDescription = "icon",
     alignment = Alignment.CenterStart,
     modifier = Modifier.width(100.dp)
)

contentScale

contentScale可以设置图片的缩放模式,类似原来的ScaleType

Image(painter = painterResource(R.mipmap.ic_launcher),
      contentDescription = "icon",
      contentScale = ContentScale.Fit,
      modifier = Modifier.width(300.dp).height(200.dp)
)
  • ContentScale.None

    • 保持原始图像比例
    • 图像不会缩小
    • 图片不会被放大
    • 如果图像的边小于视图边界,则它会有填充
    • 如果图像的边大于视图边界,将被裁剪
    • 效果:
      在这里插入图片描述
  • ContentScale.Inside

    • 保持原始图像比例
    • 图像可能会缩小,直到一切都在视图范围内
    • 图像不会被扩展。
    • 如果图像的比例与视图边界不同,则图像的边将有填充
    • 图像的边将不会被裁剪
    • 效果:
      在这里插入图片描述
  • ContentScale.Crop

    • 保持原始图像比例
    • 图像可能会缩小,直到完全覆盖所有视图边界
    • 可以扩展图像直到完全覆盖所有视图边界
    • 图像的两侧将没有填充
    • 如果图像的比例与视图边界不同,则图像的边将被裁剪
    • 效果:
      在这里插入图片描述
  • ContentScale.Fit

    • 保持原始图像比例
    • 图像可能会缩小,直到覆盖视图边界的一侧
    • 图像可能会被扩展,直到覆盖视图边界的一侧
    • 如果图像的比例与视图边界不同,则图像的边将有填充
    • 图像的边将不会被裁剪
    • 效果:
      在这里插入图片描述
  • ContentScale.FillBounds

    • 不要保持原始图像比例
    • 图像可能会缩小,直到覆盖所有视图边界
    • 可以扩展图像直到覆盖所有视图边界
    • 图像的两侧将没有填充
    • 图像的边将不会被裁剪
    • 效果:
      在这里插入图片描述
  • ContentScale.FillHeight

    • 保持原始图像比例
    • 图像可能会缩小,直到高度与视图边界匹配
    • 图像可能会被扩展,直到高度与视图边界匹配
    • 如果图像比例高于视图边界,图像的边将有填充
    • 如果图像比例比视图边界宽,则必须裁剪图像的边
    • 效果:
      在这里插入图片描述
  • ContentScale.FillWidth

    • 保持原始图像比例
    • 图像可能会缩小,直到宽度与视图边界匹配
    • 可以扩展图像直到宽度与视图边界匹配
    • 如果图像比例比视图边界宽,图像的边将有填充
    • 如果图像比例高于视图边界,则必须裁剪图像的边
    • 效果:
      在这里插入图片描述
  • 所有效果:
    在这里插入图片描述
    在这里插入图片描述

alpha

alpha参数可以设置图片的透明度

Image(painter = painterResource(R.mipmap.ic_launcher),
      contentDescription = "icon",
      alpha = 0.5f,
      modifier = Modifier.width(500.dp).height(200.dp)
)

colorFilter

colorFilter参数可以设置滤色,此处不详细展开来讲了

圆角、圆形图片

圆角、圆形图片需要借助到modifier来实现,modifier_clip_方法,可以给所有View设置圆角:

Image(
      painter = painterResource(id = R.mipmap.ic_launcher),
      contentDescription = "",
      //圆角图片
      modifier = Modifier.clip(shape = RoundedCornerShape(50))
)

clip方法接收一个RoundedCornerShape类型的参数,RoundedCornerShape有7个构造方法,可以传入圆角百分比、dp、size等参数,可以分别设置4个角的圆角,详细可以查看RoundedCornerShape的源码。

加载网络图片

Jetpack Compose Image加载网络图片

Jetpack Compose是一个新的Android UI工具包,它使用Kotlin语言编写,用于简化Android应用程序的用户界面设计和开发。下面是关于Jetpack Compose的入门到精通的介绍: 入门阶段: 1. 学习Kotlin语言:作为Jetpack Compose的开发语言,了解Kotlin语法和基本概念是非常重要的。 2. 了解Jetpack Compose的基本概念:明白Jetpack Compose是什么,它的特点和优势,以及它和传统的Android UI开发方式的不同之处。 初级阶段: 1. 熟悉Compose基础组件:学习如何使用Compose中的基础UI组件,比如Text、Button、Image等,以及它们的属性和用法。 2. 掌握Layout布局:学习如何使用Compose的Layout组件来构建复杂的UI布局。 3. 处理用户交互:了解如何在Compose中处理用户输入和交互,比如点击事件、滑动事件等。 中级阶段: 1. 自定义组件:学习如何定义和创建自己的Compose组件,以及如何重用和组合这些组件。 2. 状态管理:掌握Compose中的状态管理方式,包括可变状态和不可变状态的使用。 3. 主题和样式:学习如何在Compose中定义和使用主题和样式,以及如何实现自定义主题。 高级阶段: 1. 性能优化:了解如何在Compose中优化UI性能,包括减少布局层次、使用Compose中的性能优化工具等。 2. 动画和过渡:学习如何在Compose中实现复杂的动画和过渡效果。 3. 与其他Jetpack组件集成:掌握如何将Compose与其他Jetpack组件(比如ViewModel、LiveData等)集成使用,以构建完整的Android应用程序。 在这个学习过程中,不断练习和尝试实际项目是非常重要的,只有通过实践才能真正掌握Jetpack Compose的使用技巧和经验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值