Создайте поток, который делает это 30 раз в секунду:
- Вызовите SurfaceHolder.lockCanvas ().
- Рисует в Canvas (должен полностью перерисовать все пиксели).
- Вызовите SurfaceHolder.unlockCanvasAndPost ().
Фактически, если ваш поток просто сидит и делает это, не пытаясь сделать паузу, он будет ограничен частотой кадров экрана.
Вы должны убедиться, что этот поток правильно синхронизирован с управлением видом поверхности - например, если поверхность изменяется или разрушается, ваш код должен синхронизироваться с потоком, чтобы убедиться, что поток останавливается, пока этотслучается.
Конечно, это означает, что вы делаете программный рендеринг на холст.В зависимости от того, что вы делаете, это может быть хорошо, чтобы дать вам анимацию 30 кадров в секунду.Если нет, вам нужно использовать GLSurfaceView.В любом случае вы можете рассмотреть возможность использования этого, просто потому, что он позаботится о поточной части для вас.