SurfaceHolder相当于SurfaceView的一个控制器。两者之间还是一种紧耦合关系。
SurfaceView:
package cn.sd.sx.sfv;
public class SVF {
private int num = -1;
private SVH.CB cb;
private SVH svh = new SVH() {
@Override
public int showNum() {
return num;
}
@Override
public void addCB(CB cb) {
SVF.this.cb = cb;
}
};
public SVH getSVH()
{
return svh;
}
public void showProgress() {
cb.onCreate();
System.out.println("showProgress");
cb.onDestory();
}
}
SurfaceHolder:
package cn.sd.sx.sfv;
public interface SVH {
public int showNum();
public void addCB(SVH.CB cb);
public interface CB {
public void onCreate();
public void onDestory();
}
}
运行代码:
package cn.sd.sx.sfv;
import cn.sd.sx.sfv.SVH.CB;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
SVF svf = new SVF();
SVH svh = svf.getSVH();
svh.addCB(new CB() {
@Override
public void onDestory() {
System.out.println("onDestory");
}
@Override
public void onCreate() {
System.out.println("onCreate");
}
});
svf.showProgress();
}
}