各种设备上奇怪的canvas.getMatrix值

时间:2012-09-11 17:45:17

标签: android canvas

我的Android应用中的canvas.getMatrix值存在一个奇怪的问题。对于我有的自定义视图(我的类,扩展ImageView),getMatrix()在“全新”视图上的结果在两个设备(和两个操作系统)上是不同的。各种各样的方式对我来说没有意义(例如,不依赖于维度)。

  • 我的观点在布局上排在第二位,64dp之后在两台设备(Nexus7和HTC Desire)上映射到96px。
  • 在Nexus上,初始matrixFloats [Matrix.MTRANS_Y]结果为0(当我开始滚动和缩放时,当然会发生变化)。
  • 在HTC Desire(和Kindle Fire)上 - 起始值为96。

Canvas Matrix在不同版本的Android之间运行有什么不同吗?

感谢您的任何建议 - 希望有人熟悉这个问题。

PS。 matrixFloats是一个float [9]数组,它是Matrix getValues(float [])方法的结果。

回答问题,分享我的“肮脏”解决方案。

  1. 这是我在onDraw()方法中从画布中获取的canvas.getMatrix()矩阵。
  2. 要解决这个问题(我需要这个矩阵来了解我的ImageView图像的哪个区域被点击),添加一个我根据矩阵的初始状态在一开始就设置的参数。

0 个答案:

没有答案