Если я правильно понял вопрос, не могли бы вы просто сделать button.draw(canvas)
в вашем SurfaceView.onDraw()
методе? Вы определенно хотите обойти нормальный механизм компоновки (потому что он очень медленный для перемещения объектов), поэтому вам также придется подделать обнаружение попаданий и т. Д.