
我已经将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)给构造函数.
它完成了.. 总结
以上是内存溢出为你收集整理的子类化SurfaceView并重写onDraw()以更改SurfaceView参数以生成所需大小的预览 全部内容,希望文章能够帮你解决子类化SurfaceView并重写onDraw()以更改SurfaceView参数以生成所需大小的预览 所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)