Я не думаю, что есть встроенный способ сделать это. Напишите свой класс представления изображения всем, чтобы обратный вызов был зарегистрирован после того, как он изменит свое содержание. Затем в методе действия onCreate
найдите представление изображения и зарегистрируйте действие в качестве объекта обратного вызова. Когда представление изображения завершает обработку события прикосновения, оно может просто вызвать метод обратного вызова.
Вот эскиз того, как это может работать:
public class MyImageView extends ImageView {
public interface OnImageChangedListener {
public void imageChanged(MyImageView view);
}
private OnImageChangedListener mChangeListener;
public void setOnImageChangedListener(OnImageChangedListener listener) {
mChangeListener = listener;
}
// inside your OnTouchListener:
public boolean onTouch(View view, MotionEvent event) {
// make updates, then, if warranted:
if (mChangeListener != null) {
mChangeListener.imageChanged(MyImageView.this);
}
}
Тогда просто объявите, что ваша деятельность реализует MyImageView.OnImageChangedListener
и вызовите imageView.setOnImageChangedListener(this)
после нахождения представления изображения (возможно, с использованием findViewById
).
Очевидно, что вы можете сохранить некоторые данные, сокращая имена методов. Что еще более важно, вы можете, если это будет полезно, добавить дополнительные аргументы в метод обратного вызова.