我已经将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()?请帮忙.
最佳答案
您只需要添加
setWillNotDraw(false)
给构造函数.
它完成了..
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。