使用Jetpack Compose的镜像效果

news2024/11/23 1:37:33

使用Jetpack Compose的镜像效果

您是否曾想过在列表或一般情况下为图像创建镜像效果?有了强大的Jetpack Compose UI工具包,这变得简单而容易。

正如您所看到的,此效果包括以下内容

  1. 反转图像
  2. 反转图像的50%可见性
  3. 模糊的反转图像
  4. 与原始图像一样的边缘

现在,让我们看看如何使用Jetpack Compose完成每个步骤

这是包含带有固定高度300 dp的图像的原始图像组合,现在让我们看看如何为其制作镜像图像。

反转图像

第一步是将图像旋转180度,最好的部分是,它通过修饰符直接支持。

反转图像的50%可见性

现在,让我们看看如何将此旋转图像修剪为高度的50%,对于此目的,我们将使用修饰符,但由于没有直接支持可以将修剪到高度的50%,所以我们将构建自定义形状修饰符。

HalfSizeShape将在使用剪辑修饰符时调用,如下所示

模糊的反转图像

现在是棘手的部分,将模糊效果投影到反转图像上,以呈现镜像效果,但不仅仅是模糊,甚至还添加了渐变,以提供平滑的纹理,如下所示

与原始图像一样的边缘

由于同一组合再次被调用以绘制镜像效果,因此相同的修饰符属性将继续存在,这意味着当原始图像具有圆角边缘时,镜像图像也将具有相同的属性。

//mirror.kt
@Composable
fun Mirror(content: @Composable () -> Unit) {
    Column {
        content()
        Box(modifier = Modifier
            .graphicsLayer {
                alpha = 0.99f
                rotationZ = 180f
            }
            .drawWithContent {
                val colors = listOf(Color.Transparent, Color.White)
                drawContent()
                drawRect(brush = Brush.verticalGradient(colors),
                    blendMode = BlendMode.DstIn)
            }
            .blur(radiusX = 1.dp, radiusY = 3.dp, BlurredEdgeTreatment.Unbounded)
            .clip(
                HalfSizeShape
            )
        ) {
            content()
        }
    }
}

现在,每当您需要为任何组合(例如此示例中的图像)创建镜像效果时,可以按照以下方式调用Mirror组合

只需几行代码,您就可以获得强大的Jetpack Compose工具包带来的镜像效果。

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

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

相关文章

openGauss学习笔记-46 openGauss 高级数据管理-子查询

文章目录 openGauss学习笔记-46 openGauss 高级数据管理-子查询46.1 SELECT语句中的子查询使用46.2 INSERT语句中的子查询使用46.3 UPDATE语句中的子查询使用46.4 DELETE语句中的子查询使用 openGauss学习笔记-46 openGauss 高级数据管理-子查询 子查询或称为内部查询&#xf…

实战演练 | Navicat 导出向导

数据库工具中的导入导出功能是指将数据从一个数据库系统导出到另一个数据库系统,或者将数据从一个文件格式导出到另一个文件格式。导入导出功能可以通过各种方式实现,例如使用SQL语句、数据库管理工具或第三方库和工具。在进行数据迁移时,通常…

AMBA总线协议(6)——AHB(四):传输细节

一、前言 在之前的文章中,我们已经讲述了AHB传输中的两种情况,基本传输和猝发传输。我们进行一个简单的回顾,首先,开始一次传输之前主机需要向仲裁器申请获得总线的使用权限,然后主机给出地址和控制信号,根…

冠达管理:沪指失守3100点 大盘加速赶底

8月21日,A股商场缩量跌落,上证指数尾盘失守3100点。券商股领跌,环保板块逆势掀涨停潮。北向资金净卖出64.12亿元,这是自8月7日以来连续第11个交易日净卖出。 从盘面看,早盘三大指数小幅低开,以券商股为主的…

前端找工作,有没有什么推荐的vue项目?

前言 可以参考一下下面的项目,已经作了vue2和vue3的分类,可以自己去选择适合的,希望对你有帮助~ Vue2 PC项目 1、 Elemen Star:53.4k 是一个基于Vue.js 2.0的UI组件库,由饿了么前端团队开发和维护。该组件库提供了…

文旅景区vr体验馆游乐场vr项目是什么

我们知道现在很多的景区或者游玩的地方,以及学校、科技馆、科普馆、商场或公园或街镇,都会建一些关于游玩以及科普学习的项目。从而增加学习氛围或者带动人流量等等。这样的形式,还是有很好的效果呈现。 普乐蛙VR体验馆案例 下面是普乐蛙做的…

wazuh初探系列一 : wazuh环境配置

目录 方法一:一体化部署 安装先决条件 第一步、安装所有必需的软件包 第二步、安装Elasticsearch 1、添加 Elastic Stack 存储库 安装 GPG 密钥: 添加存储库: 更新源: 2、Elasticsearch安装和配置 安装 Elasticsearch 包…

解决问题:C++ [某变量名] was not declared in this scope

目录 程序报错的问题 查看程序问题 发现错误代码 错误原因 修改代码 再次运行 程序报错的问题 查看程序问题 发现错误代码 cout<<c; 错误原因 c 这个变量还没有在这个程序中定义 修改代码 加上 int c; 再次运行

算法:二分查找算法/朴素二分/查找区间左右端点二分

文章目录 实现原理查找区间左右端点查找左端点查找右端点 实现思路朴素二分查找模板查找区间左右端点模板 典型例题二分查找查找元素第一个和最后一个位置x的平方根山脉数组峰顶索引 总结 实现原理 通常来说&#xff0c;二分查找的使用范围是当数组有序的时候可以使用&#xf…

2023年夏季《移动软件开发》实验报告2

2023年夏季《移动软件开发》实验报告 姓名和学号&#xff1f;本实验属于哪门课程&#xff1f;中国海洋大学23夏《移动软件开发》实验名称&#xff1f;实验2&#xff1a;天气查询小程序博客地址&#xff1f;XXXXXXXGithub仓库地址&#xff1f;XXXXXXX &#xff08;备注&#x…

MyBaits注解开发

1、注解开发介绍 在过去使用框架开发项目&#xff0c;基本都采用xml作为框架的核心配置文件存在&#xff0c;但是这种方式开发效率还是比较地下、不灵活。 现在企业开发为了能够更快的提高开发效率&#xff0c;必然会使用企业级框架进行项目开发&#xff0c;而现在主流的框架…

华人画家戴渭作品 3000 万拍出,牛津艺术学院发出任教邀请

爱丁堡,2023年7月 - 画家戴渭以他独特的画风、深邃的意境和慈悲智慧的属性,将艺术与宗教融合于作品之中。初看他的作品,可能会被其高超的艺术水准所震撼,然而仔细品味,方能领略到他深邃的艺术造诣与宗教智慧的深度融合。 作为国内最年轻的华人80后画家之一,戴渭近期被英国牛津…

若依cloud -【 22 ~ 25 】

22 认证中心介绍 1 概述 用户身份认证的过程ruoyi-cloud认证中心的实现没有依赖任何插件&#xff0c;相对简单&#xff0c;一看就懂从架构图的角度看认证中心&#xff1a; 登录请求&#xff0c;进到网关网关直接调用认证中心。查看ruoyi-gateway-dev.yml&#xff1a; # 结论…

【历史上的今天】8 月 22 日:改变世界的程序员们;网络直播的鼻祖;何小鹏离开阿里巴巴

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天 2023 年 8 月 22 日。历史上的今天&#xff0c;Masatoshi Shima 出生&#xff0c;他和 英特尔&#xff08;Intel&#xff09; 合作设计的芯片让第一个微处理器 Intel 400…

【SpringSecurity】二、密码处理与获取当前登录用户

文章目录 一、密码处理1、加密方案2、BCryptPasswordEncoder类初体验3、使用加密码加密 二、获取当前登录用户1、方式一&#xff1a;通过安全上下文的静态调用2、方式二&#xff1a;做为Controller中方法的参数3、方式三&#xff1a;从HTTPServletRequest中获取4、方式四&#…

无涯教程-PHP Installation on Windows NT/2000/XP with IIS函数

在Windows Server上运行IIS的PHP的安装比在Unix上简单得多,因为它涉及的是预编译的二进制文件而不是源代码。 如果您打算在Windows上安装PHP,那么这是先决条件列表- 运行中的PHP支持的Web服务器。一个正确安装的PHP支持的数据库,如MySQL或Oracle等。(如果您打算使用的话) PHP…

smiley-http-proxy-servlet 实现springboot 接口反向代理,站点代理,项目鉴权,安全的引入第三方项目服务

背景&#xff1a; 项目初期 和硬件集成&#xff0c;实现了些功能服务&#xff0c;由于是局域网环境&#xff0c;安全问题当时都可以最小化无视。随着对接的服务越来越多&#xff0c;部分功能上云&#xff0c;此时就需要有一种手段可以控制到其他项目/接口的访问权限。 无疑 反向…

硬件解码example

使用方法&#xff1a; ./hw_decode vaapi juren-30s.mp4 juren-30s.mp4 验证播放&#xff1a; ffplay -video_size 1920x1080 -pixel_format yuv420p juren-30s.yuv av_hwdevice_iterate_types(type)如果你填入的参数不对&#xff0c;那么这函数这个函数的作用相当于以下命令&…

飞天使-k8s基础组件分析-pod

文章目录 pod介绍pod 生命周期init 容器容器handlerpod中容器共享进程空间sidecar 容器共享 参考链接 pod介绍 最小的容器单元 为啥需要pod? 答: 多个进程丢一个容器里&#xff0c;会因为容器里个别进程出问题而出现蝴蝶效应&#xff0c;pod 是更高级的处理方式pod 如何共享相…