【发布时间】:2012-04-18 16:14:59
【问题描述】:
像这里的许多其他用户一样,我正在使用 https://github.com/MikeOrtiz/TouchImageView 提供的 TouchImageView 类
在我的应用程序中,我正在加载来自服务的图像文件,我将其设置到我的 TouchImageView 对象中。这很好用,因为我可以放大和平移我的图像。但是,每当我单击其中一个按钮移动到下一个或上一个图像时,图像会在显示下一个图像之前缩小到标准缩放。这是第一个问题。
只要更新另一个组件,TouchImageView 对象就会返回到其初始缩放级别。只需在 EditText 上调用下一行代码即可重置缩放。
imagePageNumber.setText(imagePageNumber.getText());
为了解决这个问题,我尝试在当前缩放级别信息丢失之前保存它,然后在图像加载后再次应用它。我在 TouchImageView 中编写了一个名为 setZoom(float mScaleFactor) 的方法,它基本上模仿了现有 onScale 方法的缩放行为。如果我在使用 imageView.setImageBitmap(bm) 更新图像后直接调用它,图像不会缩放。但是,如果我在按钮上有一个单击侦听器,并在图像加载后尝试缩放,它将正确地将缩放更新为我之前保存的值。我假设图像加载方式可能存在线程问题,并且在调用 setImageBitmap 后无法立即缩放。
有没有人知道一种方法来保持从一个图像加载到另一个图像的比例?
【问题讨论】: