我已经将 SurfaceView 子类化并在 Activity 的 onCreate 中实例化它。生成预览,但控件从不进入 onDraw(),它在 SurfaceView 的子类中被覆盖。这是为什么?
class ActivityClass extends Activity{
onCreate(){
mPreview = new Preview(this);
setContentView(mPreview);
}
public void startPreview(){
rec = new MediaRecorder();
rec.setVideoSource();.......
rec.setPreviewDisplay(mPreview.getSurfaceHolder.getSurface());
}
}
class Preview extends SurfaceView implements SurfaceHolder.Callback{
SurfaceHolder mHolder;
public Preview(Context context){
super(context);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
bringToFront();//this is not
invalidate();//making a difference
}
SurfaceHolder getSurfaceHolder(){
return mHolder;
}
//Surface callback methods implemented here
}
在Surface上绘制预览之前,如果实现了onDraw回调,是不是应该把控制权交给呢?
因为 onDraw 回调对 Android 框架说'你不绘制视图。我会画它,因为我已经实施了'。我对吗?
那么,为什么控件无法进入onDraw()呢?请帮忙。