通过按键使用surfaceView 不能执行surfacecreated
在的点击按钮时为什么不能调用到SurfaceView里的surfaceCreated 回调函数啊?请各位大侠指导下,谢谢
public class MainActivity extends Activity implements Callback {
Button button=null;
ImageView imageView = null;
SurfaceHolder sfhHolder=null;
SurfaceView sfvView =null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.play_animator);
button.setOnClickListener(listener);
}
View.OnClickListener listener =new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
fuc();
}
};
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
Log.i("wenjian", "***************thread");
MyThread myThread =new MyThread();
Thread td= new Thread(myThread);
td.start();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
class MyThread implements Runnable
{
@Override
public void run() {
// TODO Auto-generated method stub
Canvas cs= sfhHolder.lockCanvas(null);
Paint mPaint = new Paint();
mPaint.setColor(Color.RED);
cs.drawRect(new Rect(0, 0, 340, 350), mPaint);
sfhHolder.unlockCanvasAndPost(cs);
}
}
public void fuc()
{
sfvView =(SurfaceView)findViewById(R.id.surfaceView1);
Log.i("wenjian","************ onclick");
sfhHolder=sfvView.getHolder();
Log.i("wenjian","************ sfhHolder:"+sfhHolder);
sfhHolder.addCallback(MainActivity.this);
}