缩放 ImageView 的图像,同时将中心点保持在同一位置

2024-04-25

我已将预缩放位图设置为 ImageView 的源。然后我读了矩阵ImageView并通过以下方式移动 ImageView 的位图matrix.postTranslate(shiftX, shiftY).

现在我想放大/缩小图像,同时保持中心ImageView在缩放之前位图的同一点。

如果我尝试使用以下命令放大图像matrix.postScale(zoom, zoom),我想要保持的点(蓝点)转移到其他地方(紫点)。

我尝试了几种不同的方法将位图移回原位,但无法使其正常工作。我知道初始位图大小、ImageView 大小、虚线标记的距离。尝试计算所需的班次和使用matrix.postTranslate(-zoomshiftX, -zoomshiftY)之后,但它没有正确移动。

即使发现,在matrix.postScale()函数之后底层位图的像素计数没有改变,并尝试了matrix.postTranslate(-zoomshiftX/zoom, -zoomshiftY/zoom) - 但仍然没有运气。

我如何实现这样的缩放?


看看我在这里关于创建可缩放 ViewGroup 的问题。我已经描述了最终解决方案中的代码片段,其中一些可能会有所帮助。

扩展RelativeLayout,并重写dispatchDraw()来创建可缩放的ViewGroup https://stackoverflow.com/questions/6378904/extending-relativelayout-and-overriding-dispatchdraw-to-create-a-zoomable-view/6490515#6490515

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

缩放 ImageView 的图像,同时将中心点保持在同一位置 的相关文章

  • Android USB_DEVICE_ATTACHED 持久权限

    如何让 Android 在每次重新连接 USB 设备时都不再请求权限 我想让它记住 USB 设备的 默认使用 复选标记 这样我就不必每次都向同一设备授予权限 我以编程方式检测 USB 设备 Android 手机 何时连接到我的主机设备 An
  • 如何在GreenDao中实现表继承

    我一直在尝试创建一个数据库 其中所有表都继承某个元素 以便有可能拥有元数据 我在模型生成器的所有表声明中添加了这一行 public Entity addSuperEntity Schema schema Entity superEntity
  • 如何从 Android 广播接收器显示对话框?

    理想情况下 我不想启动一项活动来执行此操作 当 WiFi 连接丢失时 我的应用程序需要关闭 因为这对我们来说是一个致命错误 我想显示一条错误消息并让用户按 确定 按钮 然后退出应用程序 解决这个问题的最佳方法是什么 Thanks AFAIK
  • CursorAdapter 破坏了 CHOICE_MODE_MULTIPLE 选项

    我有一个ListFragment 我在其中添加一个CursorAdapter to my ListView 并且我希望能够单击几行以使用上下文操作栏 我使用 SherlockActionbar 当我使用一个简单的ArrayAdapter 但
  • Android TextToSpeech 行为不规则

    更新 经过一番挖掘 我设法在 Logcat 中找到了一些信息 见底部 编辑2 我现在从头开始创建了一个新活动来减少这个问题 它仍然无法正常工作 这是代码 public class MainActivity extends AppCompat
  • 设备锁定时,互联网音乐播放器无法加载歌曲(打瞌睡模式?)

    我正在构建一个音乐播放器 可以播放互联网上的歌曲 我注意到 通常 当一首歌曲结束并且必须加载另一首歌曲时 应用程序不会播放下一首歌曲 我等啊等 终于决定解锁手机以了解发生了什么 令人惊讶的是 设备解锁后立即开始播放以下歌曲 第一次我以为这只
  • 如何生成带logo的二维码?

    我正在为 Android 设备开发应用程序 我想生成带有徽标的二维码 With ZXing I know how to generate simple QR codes like this one But I want to generat
  • 调用“DisplayManagerGlobal.getDisplayInfo()”会导致应用程序中的应用程序无响应 (ANR)

    显然 应用程序中的某些内容从不同线程 主线程和绑定器线程 调用该方法 这会导致内部 ANR 它经常发生 我不知道它发生在哪里 因为我无法在模拟器或我拥有的测试设备上重现它 该应用程序的作用 它是一个应用程序储物柜应用程序 它在应用程序覆盖层
  • 支持多屏幕[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 支持多个屏幕和不同的屏幕密度必须注意
  • Glide:如何使用 Glide v4 调整 gif 大小并将其另存为文件?

    我想调整 gif 文件的大小并保存它 我尝试使用一些建议的方法 但这些方法给出了错误 后来我知道有些方法在 Glide 中已被弃用v4 byte bytes Glide with context asGif load url toBytes
  • Android 自定义对话框中的图标

    有没有一种方法可以在不使用 AlertDialog 方法的情况下在自定义对话框上设置图标 对话框有标题 但缺少漂亮的分隔线和设置图标的功能 但肯定有一种方法可以在不使用 AlertDialog 的情况下获得两者 您可以使用以下代码添加图标
  • 使用 GestureDetector 时出现 NullPointerException

    下面是在发生不同事件时加载两个不同图像的帧动画的代码 第一个事件是在活动开始时 其他的是onTouch 我在哪里利用GestureDetector为了onDown and onScroll 问题是我得到NullPointerExceptio
  • com.google.android.gms.games.GamesClient 无法解析

    我正在尝试使用 google play 游戏服务开发实时多人游戏 并下载了示例 ButtonClicker2000 但 Eclipse ADK 一直抱怨 com google android gms games GamesClient 无法
  • PreferenceActivity 如何使用自定义首选项文件

    我第一次尝试偏好是在不了解PreferenceActivity 所以现在我有一个应用程序将所有用户首选项存储在特定的首选项文件中 我想迁移到使用 PreferenceActivity 但我也希望我的用户保留他们的偏好 有没有办法告诉我的 P
  • 更改单击后退按钮上的 BottomNavigationView 图标

    在我的布局的底部有一个底部导航视图与三个片段 如果我单击后退按钮 片段将切换 但底部图标不会切换 我该如何修复它 addToBackStack 有效 也许您有一些关于美化代码的建议 在活动或片段中添加片段标签是一个好的做法吗 public
  • 应用程序在 JSON jparser 发出 http 请求时崩溃

    您好 我使用本教程连接到网络或本地的 mySQL 数据库 here http www androidhive info 2012 05 how to connect android with php mysql 虽然所有服务器端 php 文
  • Android NDK __android_log_print函数和LogCat

    我有一个类似的功能 android log print ANDROID LOG INFO HelloNDK 在我的 C 代码上 我在 LogCat 上找不到该输出 我需要设置什么样的过滤器 按日志标签 按日志消息 按应用程序名称 按日志级别
  • 应用程序被终止时无法处理 FCM 消息

    我一直在阅读各种教程 其他 SO 线程以及官方 Android 开发人员和 Firebase 文档 但无济于事 我已经尝试了几乎所有的方法 但我已经耗尽了精力和时间 因为我正在修复以前可以工作但现在不再工作的通知系统 我正在使用 Azure
  • 如何检查Android应用程序是否第一次打开

    我想在用户第一次打开应用程序时有一个弹出窗口 如何查看 获取应用程序被打开的次数 请帮忙 多谢 当您的应用程序启动时 在onCreate 方法 您可以检查 SharedPreference 是否存在 如果没有 则这是该应用程序第一次启动 然
  • 在 Android 应用程序中编辑/添加 IPTC 元数据

    我看过许多其他类似的问题 但似乎没有一个有准确的答案 我正在开发一个可处理大量图像的 Android 应用程序 我希望通过编辑 IPTC 关键字标签 或其他适当标签 的值来向图像添加信息 我在用元数据提取器 http drewnoakes

随机推荐

  • 使用 HTML/CSS 使表格在移动设备上响应

    我有这张表 它是一封较大电子邮件的一部分 当用户的设备是手机或小屏幕时 我希望表格从 2 列 2 行变为 1 列 4 行 希望使用尽可能少的代码 table style width 100 font family none color 33
  • 如何在 PHP 或 MySQL 中查找日期是否符合某个区间?

    假设我有一个日期时间 2011 年 6 月 16 日 7 00 我希望能够在 2011 年 8 月 5 日的 7 00 进行检查 并能够知道它恰好是自第一次日期以来 1 天的倍数 而 7 01 不算在内 因为它不是精确倍数 另一个测试集 假
  • 这个 NLP 问题层次结构描述中的最大池化是什么类型

    我正在尝试实现这个描述以及我所做的 我生成了形状的 uni gram bi gram tri gram 15 512 使用填充 然后对于每个单词 我连接三个特征向量 3 512 然后我向他们申请 Globalmaxpooling1D 我不知
  • 检查每个页面请求的标头

    我需要检查每个页面请求的请求标头 我认为尝试这个的地方应该是在 撇号 express 模块中 我创建了自己的模块 auth 它扩展了 apostrope express module exports extend apostrophe ex
  • Vim - 删除多行中的直到(包括)字符

    我有这个代码 def foo c Char c match case a B 我的光标位于后面的空格上 我想删除所有内容 直到 包括 我怎样才能做到这一点 我可以在光标位于第一行任意位置时执行相同操作吗 块中的任何位置 并将光标放在 d e
  • 动态添加的 Facebook 发送按钮未呈现

    我想在页面加载后动态添加一个 Facebook 发送按钮 iframe 尚不支持 由于网站的构建方式 它将成为通过 AJAX 在用户上加载的 HTML 模板的一部分 行动 虽然我正在导入 FB JavaScript SDK 但当我通过 AJ
  • Protractor/Jasmine 条件测试用例

    与此问题相关 如何使用 Protractor 创建条件测试用例 https stackoverflow com questions 36701985 how can i create conditional test cases using
  • 我可以使用什么方法从 VBA 调用 Web 服务?

    从 Excel 调用 Web 服务的最简单方法是什么 我使用的是 2002 版 请不要使用第三方工具或库 这必须很容易使用一些 VBA 我可以将其粘贴到那里 使用它并随时触摸 我不认为有任何特别简单的方法可以直接从 VBA 与 SOAP 对
  • 如何使用 Web3.js 或 Ethers.js 强制传输 NFT

    我正在尝试构建一个应用程序 其中一部分涉及将 NFT 从我的帐户转移到用户的帐户 以前 我使用 Moralis 来完成此任务 但这段代码抛出了一个错误 Error Contract with a Signer cannot override
  • 如何在 Javascript 中从 Firefox 剪贴板获取内容

    我非常沮丧地在我的 React 应用程序上从剪贴板进行粘贴 I used navigator clipboard readText 在 Chrome 浏览器上完美运行 但它在我最新的 Firefox 浏览器上不起作用 我尝试搜索SO 但与之
  • Spring Data Redis - Lettuce连接池设置

    尝试在 spring data redis 环境中设置 Lettuce 连接池 下面是代码 Bean LettuceConnectionFactory redisConnectionFactory GenericObjectPoolConf
  • Gulp - 术语“gulp”未被识别为 cmdlet 的名称

    当我开始一个新项目并创建一个新的 gulpfile 时 开始出现这个随机错误 每当我跑步时我都会得到它 这不仅发生在这个项目上 而且已经开始发生在所有其他项目上 我读到环境变量可能存在问题 所以我更新了这些变量 我最近还运行了 ruby 安
  • 在 javascript 中格式化日期直至毫秒

    我们正在使用来自 Microsoft 的以下 js 库https ajax aspnetcdn com ajax 4 0 1 MicrosoftAjax js https ajax aspnetcdn com ajax 4 0 1 Micr
  • Angular 2 --aot 导致 AnimationEntryMetadata 失败

    我的代码可以正常工作ng build and ng build prod但是 当我将 oat 添加到命令中时 它会失败并出现以下错误 Uncaught Error Module build failed Error C Users drem
  • Google 气泡图自定义工具提示列不呈现

    我正在尝试将自定义工具提示添加到气泡图中 以替换默认的工具提示 我已按照文档网站的说明进行操作 here https developers google com chart interactive docs customizing tool
  • MultipartFile 文件名中的特殊字符转换为?在春季启动

    我想知道为什么 spring boot 将 MultiPartFile 文件名特殊字符转换为 例如 pdf 转换为 pdf 我需要配置 Spring 来禁用此行为吗 我已经检查了我的 jvm 配置中的 file encoding 它已经设置
  • DRY:如何在 Symfony2 项目的多个实体中使用此代码?特质?

    我有一段重复的代码 将在我的 Symfony2 项目中的多个实体中使用 因此应用某种 DRY 就可以了 当然如果可能的话 我正在考虑PHP 特性 http php net manual en language oop5 traits php
  • 如何在M1 arm64架构上安装PyQt5?

    我有一台 M1 mac 但我注意到 每当本机 python 运行任何自动化脚本 如 PyAutoGui 时 它都会逐渐变得越来越慢 几乎就像受到了限制一样 我用 Miniforge3 创建了一个能够利用 Apple 芯片的环境 使脚本运行得
  • 如何制作进度条

    如何在 html css javascript 中制作进度条 我真的不想使用Flash 可以在这里找到类似的内容 http dustincurtis com about html http dustincurtis com about ht
  • 缩放 ImageView 的图像,同时将中心点保持在同一位置

    我已将预缩放位图设置为 ImageView 的源 然后我读了矩阵ImageView并通过以下方式移动 ImageView 的位图matrix postTranslate shiftX shiftY 现在我想放大 缩小图像 同时保持中心Ima