Я реализовал ряд подобных действий, но по какой-то причине следующий класс не достигает вызова onDraw. (очень простой) класс:SurfaceView.onDraw not called
import ...etc.
public class SVPlay extends SurfaceView implements Callback {
Context context;
Point screenSize;
Bitmap backGroundImage
public SVPlay(Context _context) {
super(_context);
context = _context;
this.getHolder().addCallback(this);
setFocusable(true);
screenSize = DrawUtil.getInstance(context).getScreenSize();
backgroundImage = BitmapFactory.decodeResource(context.getResources(), R.drawable.room);
backgroundImage = Bitmap.createScaledBitmap(backgroundImage, screenSize.x, screenSize.y, false);
}
@Override public boolean onTouchEvent(MotionEvent event) {
...
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(0xFFAAAAAA);
canvas.drawBitmap(backgroundImage, 0, 0, paint);
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
public void surfaceCreated(SurfaceHolder holder) {
setWillNotDraw(false);
}
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}
Этот класс конкретизируется и управляет активностью: общественного класса PlayActivity расширяет активность {
SVPlay svPlay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
svPlay = new SVPlay(this);
setContentView(svPlay);
}
....
}
Это похоже на любое количество другой деятельности/реализаций surfaceView, которые работают для меня, но по какой-то причине onDraw не вызывается. Чтобы упростить код для цели вопроса, я исключил фактическую активность рисования и проверил, установив точку останова в onDraw(). Выполнение не достигает вызова onDraw. Добавление вызова postInvalidate() не помогает. Конструктор вызывается и выполняется без каких-либо проблем или исключений. Что происходит? 19/5/13 - Дальнейшие исследования. Эта активность/SurfaceView отображается при запуске в виде отдельного проекта, поэтому проблема не в коде, отображаемом здесь, а в коде, который вызывает действие. В ближайшее время ...