Что-то подозрительное происходит. Похоже, вы пытаетесь установить SurfaceView в качестве предварительного просмотра. В этом случае Activity должен реализовывать SurfaceHolder.Callback (не SurfaceView). Это делается для того, чтобы Activity могла знать, когда SurfaceView был создан и готов к рисованию. Кроме того, даже не нужно расширять SurfaceView: вы должны иметь возможность самостоятельно использовать SurfaceView.
Предполагая, что я неправильно понял, и вы действительно хотите расширить поверхность обзора по некоторым причинам ...
Я не вижу, где вы переопределили onDraw в вашем классе Preview. Вы не включили этот код?
Когда вы говорите, что обратный вызов onDraw сообщает android ', вы не рисуете представление. Я нарисую его, так как я был реализован », я не согласен. onDraw - это функция, в которой View рисует вещи, которые есть у всех представлений, например фон. SurfaceView расширяет вид. Когда вы расширяете SurfaceView, вы можете переопределить onDraw, чтобы сказать android рисовать вещи в дополнение к тому, что рисует оригинальный onDraw в View. Другими словами, Android всегда делает все рисование; переопределение onDraw просто говорит ему рисовать еще несколько вещей, когда это подходящее время для рисования.