使用 Glide 进行缩放和遮罩

2024-06-28

我只是想看看是否有人可以为我指明正确的方向,以学习如何使用 Glide 来完成此任务......

  • 我们有一个包含内容的页面。

  • 内容显示为单个图像(想想:杂志页面的图像)

  • 在轻松阅读模式下,我想将第一块居中并缩放 文本内容并屏蔽其余内容

  • 单击“下一步”时,我想移至下一个文本块 内容、最近更新和重新缩放

  • 单击“后退”时,我想移至上一个文本块 内容、最近更新和重新缩放

  • 遮罩始终是矩形,但尺寸会不断变化以适应内容

我在下面放了几张简单的图片来说明我的意思。我们目前正在使用一个图像视图和 4 个定位的黑色视图来完成此操作,但它非常不稳定并且容易出现错位。我们可以在 Glide 中完成这个任务吗?

谢谢大家!


缩放和遮罩功能可以通过两种方式实现。用于遮盖图像使用Glide https://github.com/bumptech/glide和变焦使用照片查看器 https://github.com/chrisbanes/PhotoView但正如您提到的,文本内容需要自动缩放,那么您所遵循的方法就很复杂。

Glide 为您提供了一项功能,您可以自动将缓存和内存中保存的图像大小限制为 ImageView 尺寸,例如,如果图像不应自动适合 ImageView,请调用 override(horizo​​ntalSize, VerticalSize)。这将在将图像显示在 ImageView 中之前调整图像的大小。

GlideApp  
  .with(context)
  .load("Image resource")
  .override(600, 200) // resizes the image to these dimensions (in pixel). resize does not respect aspect ratio
  .into(imageView);

当您在没有已知尺寸的目标视图的情况下加载图像时,此选项也可能会有所帮助。例如,如果应用程序想要在初始屏幕中预热缓存,则它还无法测量 ImageView。但是,如果您知道图像应该有多大,请使用 override() 来提供特定大小。查看 Glide 的其他功能here https://futurestud.io/tutorials/glide-image-resizing-scaling

使用 PhotoView 进行放大和缩小,甚至它最适合在您的场景(杂志页面)中工作。它可以通过传递 photoview 实例作为 glide 中的参数来实现.into()功能

还要检查这个example https://blog.fossasia.org/adding-zooming-functionality-for-gallery-images/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Glide 进行缩放和遮罩 的相关文章

随机推荐

  • 如何重置anaconda根环境

    如何重置anaconda的root环境 必须有一个简单的 conda Reset 命令来执行此操作 我不想再次重新安装 anaconda 我有其他不想覆盖的 virtualenv 如果我再次安装 anaconda 就会发生这种情况 See
  • 无法加载资源:加载 .mp3 文件时出错

    我正在使用以下命令向我的应用程序添加声音audioplayers包 但在第一次构建时没有播放声音 加载文件时热重启面团后 我收到此异常 E flutter 32175 ERROR flutter lib ui ui dart state c
  • GCM 注册 ID 已更改

    我开发了一个使用 GCM 技术的应用程序 一切正常 我观察到设备的注册 ID 一段时间后发生了变化 这导致我的应用程序出现问题 因为我的应用程序依赖于注册 ID 那么如何为客户获取固定的Reg ID呢 我读完了这两个原因here http
  • Angular 6 不赞成同时使用 formControlName 和 ngModel

    我有 Angular 6 项目 我一起使用 ngModel 和 formControlName 但角度在下面给了我警告 例如 当我从网格中的按钮打开更新弹出窗口时 我可以轻松地自动绑定更新弹出窗口中的输入 但 Angular 7 表示删除
  • C# 是“??”吗?运算符线程安全吗?

    大家都知道这不是线程安全的 public StringBuilder Builder get if builder null builder new StringBuilder return builder 那这个呢 public Stri
  • 错误:找不到模块:错误:无法解析“@angular/cdk/scrolling”

    我遇到了错误 找不到模块 错误 无法解析 angular cdk scrolling 一旦我在 app module ts 中添加 import TableModule from primeNG 为什么会抛出这个错误 我没有看到 prime
  • 如何在Python多处理中的所有进程之间共享数据?

    我想在给定文章中搜索预定义的关键字列表 如果在文章中找到关键字 则分数加 1 我想使用多重处理 因为预定义的关键字列表非常大 10k 个关键字 文章数量为 100k 我碰到this https stackoverflow com quest
  • 如何构图“也许”镜头?

    如果我有嵌套记录的镜头 其中每个镜头返回一个Maybe 我怎样才能让它们组合起来 这样如果 遍历 中有任何东西返回一个Nothing最终结果是Nothing data Client Client clientProperties Maybe
  • 使用 gson 将 Java 对象转换为 JSON 字符串

    我在这里找到了一些示例 说明如何将 json 转换为 java 对象 但这里我需要将 Java 对象转换为GSON 我有一个Java对象 现在我想将Java对象转换为Gson 我该如何实现这一点 请参考我的代码 Staff obj new
  • Aurora RDS 实例无法停止

    我正在尝试 Amazon Aurora 实例 但看不到停止它的选项 唯一的选项是删除和重新启动 我是不是错过了什么 编辑 2018 09 25 Amazon Aurora 现在支持停止和启动数据库集群 根据本公告 https aws ama
  • javascript 减法(-) 键码

    好的 我需要我的代码来检查减号 减号 是否被按下 如果被按下我想要弹出一个警报框 我都试过了109 and 189关键代码 但我仍然没有得到想要的结果 虽然我按 我没有收到那个警报框 JavaScript字符代码 您在按键事件期间测试的内容
  • 进行 SendInput 时调用全局低级键盘钩子。如何预防?

    我有一个用 c 编写的 win 32 应用程序 它设置低级键盘挂钩 现在我想将输入发送到任何应用程序 例如单词 记事本 我该怎么做呢 我已经足够使用 findwindow sendmessage 了 对于所有这些 我需要了解编辑控件 找到编
  • Python Decimal 模块不适用于 uint64

    我正在尝试将 numpy uint64 由 numpy sum 输出 转换为小数 而不会丢失 Decimal 模块的精度 gt gt gt from decimal import Decimal gt gt gt import numpy
  • 如何在 // 注释中转义反斜杠

    我有一条以反斜杠结尾的评论 就像是 use Clang 警告我 这是多行注释 warning multi line comment Wcomment use 所以我尝试在末尾添加一些空格 但没有帮助 我可以以某种方式逃避反斜杠吗 问题的基础
  • 使用 XQuery 更新自动递增?

    Does XQuery更新支持自增属性 就像中的自增字段一样SQL 我在用着BaseX作为我的数据库 Given Christian Gr n 在 BaseX 邮件列表上的回答 https mailman uni konstanz de p
  • 为什么反斜杠出现两次?

    当我创建包含反斜杠的字符串时 它们会重复 gt gt gt my string why does it happen gt gt gt my string why does it happen Why 你所看到的是表示 of my stri
  • 在javascript中打开本地文件系统中的文件

    我正在寻找一种在 IE 和 Firefox 浏览器中使用 javascript 打开临时目录中的 xls 文件的方法 我尝试使用 JavaScript 如下所示 function openMe var newwindow window op
  • WPF 绑定无法与 int 类型的属性正常工作

    我拥有以下财产int输入我的视图模型 该模型绑定到TextBox 一切正常 TwoWay绑定工作正常 除了一种情况 如果我清除的值TextBox 属性设置器不会被调用 尽管值已被清除TextBox 属性仍保持先前的值 有人遇到过类似的问题吗
  • javascript 如何将对象深度绑定到新的“this”值

    我有一个值 它可能是一个原语或一个函数或一个递归地包含原语 函数 对象的对象 Given a theThis参数 我如何将可能在我的值内的所有函数深度绑定到theThis 我尝试过类似的东西 function deepBind o ths
  • 使用 Glide 进行缩放和遮罩

    我只是想看看是否有人可以为我指明正确的方向 以学习如何使用 Glide 来完成此任务 我们有一个包含内容的页面 内容显示为单个图像 想想 杂志页面的图像 在轻松阅读模式下 我想将第一块居中并缩放 文本内容并屏蔽其余内容 单击 下一步 时 我