我在这里根据Nicolas Tyler的帖子实现了一个Custom ImageView: https://stackoverflow.com/a/17649895/680488
它确实很好但我有一个问题:
我在一个布局中有自定义ImageView,在ImageView下面有另一个布局。用户可以切换第二个布局的可见性。每当发生这种情况时,ImageView都会调整大小(以填充整个活动或为其他布局腾出空间)。到现在为止还挺好。问题是,当重新调整大小时,ImageView似乎“丢失”了它的图像矩阵,并且图像再次以原始状态显示(缩小,以便整个图像适合屏幕)。
我想在重新调整大小之前保持最后一个状态(滚动/缩放回到相同的位置(或者只是呆在那里))。所以问题是,什么时候最好的情况是存储imageview的矩阵以及何时再次应用它? (onSizeChanged似乎要迟到了,对吗?)
我希望它足够清楚......?
编辑: 在我按照评论中的描述实现它后,我现在有了非常奇怪的行为: 它首先看起来很好,并且imageView保持(或实际上返回)与另一个视图的可见性更改之前的状态相同。然而,当我触摸视图滚动或缩放时,它会移动几个像素,然后跳转到一个完全不同的位置,控件不再工作(我无法滚动/缩放)。 我在调整大小后触摸时打印出矩阵值:
OnTouch: 1.204599, 0.0, -1254.761, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, -1254.761, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, -1254.761, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, -1254.761, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, -1254.761, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, -1254.761, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, 0.0, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, 0.0, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, 0.0, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, 0.0, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, 0.0, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
OnTouch: 1.204599, 0.0, 0.0, 0.0, 1.204599, -107.23739, 0.0, 0.0, 1.0
所以TRANS_X立即跳到零。有什么想法可能会发生这样的事情吗?
干杯, Ĵ