0

我在这里根据 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

4

0 回答 0