Пользовательский ImageView, сохранить состояние после изменения размера - программирование

Пользовательский ImageView, сохранить состояние после изменения размера

Я внедрил Custom ImageView на основе должности Николаса Тайлера здесь: qaru.site/info/47774/...

Он работает очень хорошо, но у меня есть одна проблема:

У меня есть пользовательский ImageView внутри макета с еще одним макетом под ImageView. Эта вторая видимость макета может быть переключена пользователем. Всякий раз, когда это происходит, ImageView получает изменение размера (чтобы заполнить всю деятельность или сделать место для другого макета). Все идет нормально. Проблема заключается в том, что при этом повторном размере изображения ImageView, кажется, "теряет" свою imagematrix, и изображение снова отображается в исходном состоянии (уменьшено, так что все изображение подходит на экране).

Я хочу сохранить последнее состояние до повторной калибровки (прокрутка/масштабирование обратно в ту же позицию (или просто остаться там)). Поэтому возникает вопрос, когда лучше всего хранить матрицу просмотра изображений и когда ее применять снова? (onSizeChanged, похоже, поздно, не так ли?)

Я надеюсь, что это достаточно ясно...?

EDIT: после того как я реализовал его, как описано в комментариях, у меня теперь действительно странное поведение: Сначала он выглядит хорошо, и 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 сразу переходит в ноль. Любые идеи, почему это может произойти?

Cheers, J

4b9b3361