子类化SurfaceView并重写onDraw()以更改SurfaceView参数以生成所需大小的预览

概述我已经将SurfaceView子类化,并在Activity的onCreate中实例化了它.预览已生成,但控件从未输入onDraw(),该值在SurfaceView的子类中被覆盖.这是为什么?class ActivityClass extends Activity{ onCreate(){ mPreview = new Previe

我已经将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参数以生成所需大小的预览 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1145367.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存