关于SurfaceView创建时,surfaceCreated调用的问题
请问一下正常流程执行surfaceView,surfaceCreated可以正常调用,SurfaceView预览界面写在XML文件中;但是试了下面两种方法surfaceCreated不会被调用,网上查了查,也没找到相关资料和说法,请问哪个大哥知道原理的?
方法一,使用handler延时加载
mHandler.postDelayed(new Thread() {
public void run() {
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
},10);
方法二,点击按钮加载
public void onClick(View view){
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
// 后来尝试发现使用动态加载SurfaceView可以解决这个问题,就是new一个SurfaceView对象,然后addView(mSurfaceView),但是还是不明白为什么SurfaceView在XML布局中。上述两种方法就不可行?哪位了解的大哥能不能讲一下原理?