SurfaceView / CanvasView Общий вопрос - PullRequest
       24

SurfaceView / CanvasView Общий вопрос

2 голосов
/ 13 февраля 2011

Так что это довольно общий вопрос, но я некоторое время размышлял над этим и хотел посмотреть, есть ли у кого-нибудь предложения по этому поводу.

В моем предыдущем опыте, как и у некоторых людей, использование SurfaceViews и / или CanvasViews для отображения графики, рисования пикселей и анимации было очень простым и понятным. Я лично использую SurfaceViews больше для анимации, так как они более оптимизированы для этого. Из тестов я понял, что SurfaceViews сильно задерживается на некоторых телефонах (например, Motorola Droid), но плавно работает на других (например, Droid Incredible). Мне было интересно, если кто-нибудь знает о представлениях или методах отображения, которые работают гладко и более эффективны, чем SurfaceViews и / или CanvasViews, особенно для анимации. Большое спасибо.

В первую очередь я хочу знать это, потому что я не понимаю, как некоторые игры могут работать так гладко на моих медленных телефонах, даже если они имеют намного больше анимации, чем моя простая игра, использующая SurfaceView.

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Крис Пруэтт очень хорошо ответил на этот вопрос в своих презентациях о создании игр для Android в реальном времени. Он сделал две презентации, но я думаю, что первая: http://www.youtube.com/watch?v=U4Bk5rmIpic имеет это.

В общих чертах, GLSurfaceView всегда будет лучше или равен SurfaceView, однако, если вы визуализируете только небольшое количество объектов, то SurfaceView может показаться лучше. Что касается расхождений в телефонах, я полагаю, что его вторая презентация (I / O 2010) подробно освещает это.

0 голосов
/ 14 февраля 2011

Для игр с большим количеством анимации было бы хорошо использовать GLSurfaceView, это SurfaceView, оптимизированный с OpenGL ES. но мне тоже интересно, потому что я тестировал рисование с использованием GLSurfaceView по сравнению с SurfaceView, и результат все еще лучше для SurfaceView. во всяком случае, нет такой вещи, как CanvasView. :)

...