我在这里根据 Nicolas Tyler 的帖子实现了自定义 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 立即跳到零。任何想法为什么会发生这样的事情?
干杯,J