SurfaceViewをサブクラス化し、アクティビティのonCreateでインスタンス化しました。プレビューは生成されますが、SurfaceViewのサブクラスでオーバーライドされるonDraw()にコントロールが入ることはありません。何故ですか?
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()に入ることができないのですか?助けてください。