Android 如何为SurfaceHolder创建曲面?
我试图让应用程序每隔半秒在画布上绘制一些东西,但是Android 如何为SurfaceHolder创建曲面?,android,android-layout,Android,Android Layout,我试图让应用程序每隔半秒在画布上绘制一些东西,但是surfacehold.getSurface().isValid()返回false,当我调用surfacehold.lockCanvas()时,返回null 根据,我应该使用SurfaceHolder.Callback.surfaceCreated,但从未创建过曲面 我的主活动中的onCreate方法 @Override protected void onCreate(Bundle savedInstanceState) {
surfacehold.getSurface().isValid()
返回false,当我调用surfacehold.lockCanvas()
时,返回null
根据,我应该使用SurfaceHolder.Callback.surfaceCreated
,但从未创建过曲面
我的主活动中的onCreate
方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
ChartPainter p = new ChartPainter(this);
}
以及我的chartpainer.java的一部分
public ChartPainter(Context context) {
super(context);
holder = getHolder();
final boolean a[] = new boolean[1];
a[0] = false;
holder.addCallback(new Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
a[0] = true;
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
});
} [...]//more omitted code here
如何为曲面文件夹创建曲面?ChartPainter是否扩展了SurfaceView
注:SurfaceHolder通常与SurfaceView一起使用。当“活动”转到前台且其SurfaceView即将渲染时,WindowManager将要求SurfaceFlinger创建新曲面。然后将调用SurfaceHolder的surfaceCreated()。这不是一个真正的答案。我需要挖掘代码,然后我会回复您,谢谢您的建议。