使用Observer模式解决图片拖动与缩放
1、java内置的观察者模式:
由Java 中的Observable 类和 Observer 接口组成
(1) Observable 类代表 被观察者 (java.util.Observable )
主要方法有:
void setChanged() : 设置被观察者的状态已经被改变
void addObserver(Observer observer) : 添加观察者
int countObservers() : 返回所有观察者的数目
void deleteObserver(Observer observer) :删除指定观察者
void deleteObservers() : 删除所有观察者
boolean hasChanged() : 被观察者的状态是否被改变,如果是则返回true,否则返回false
void notifyObservers() : 通知所有观察者
void notifyObservers(Object arg) : 通知所有观察者(参数一般设定为被改变的属性)
void clearChanged() :清除被观察者状态的改变
(2) Observer 接口代表 观察者 (java.util.Observer )
void update(Observable observable, Object arg) :当 被观察者 调用 notifyObservers() 方法
时,会根据被观察者的 hasChanged() 方法 来判断 它的状态是否被改变, 如果被观察者的状态被改变了,则
会调用 观察者 的 update 方法,参数 observable 为 被观察者对象, arg 为调用 notifyObservers( Object arg ) 时传入的参数 arg ,如果调用的是 notifyObservers() 方法, 则 arg 为 null。
值得注意的是:在Observable里,在notify()时必须先调用setChanged()方法,此方式表明状态更新...
贴上代码:
ImageZoomState类:
参考英文文献:http://developer.sonymobile.com/wp/2010/05/18/android-one-finger-zoom-tutorial-part-1/
英语水平太菜、英文文献看的相当费劲啊....