Intereting Posts
Как скопировать меньший растровый рисунок в более крупный? Является ли официальное руководство разработчиков фрагментов противоречивым? Stackoverflow: вызвано вложенными представлениями? Как разобрать содержимое html в xml с помощью tagoup в android Как сериализовать нулевое значение при использовании интерфейса Parcelable Как переместить и переименовать проект в студии Android? Правильный способ создания диалогового окна настраиваемого материала с помощью приложения AppCompat 23+ Как остановить перенос adb вперед? Объявление атрибутов стиля в Android Отображать простой текстовый ярлык / дескриптор, когда пользователь нажимает на OverlayItem в MapView Третье действие называется возвратом его результата в первую активность вместо отправки результата во второе действие? Выбирать адрес из таблицы «canonical_addresses» Отладка React Native over adb tcpip Форматирование HTML в новой библиотеке привязки данных Android Правильный формат для Android: гравитация в attrs.xml?

Android View vs SurfaceView vs GLSurfaceView для 2D-чертежного приложения с масштабируемым пользовательским интерфейсом

Я планирую написать приложение 2D-чертежа с масштабируемым пользовательским интерфейсом. С помощью приложения пользователь должен иметь возможность преобразовывать (переводить и масштабировать) рисованные пути (и, конечно же, пользовательский интерфейс). Я предполагаю, что одновременно будет до 500 путей. Теперь мне интересно, с какой целью начать (View, SurfaceView или GLSurfaceView), чтобы обеспечить приемлемую производительность. Я прочитал пару сообщений [1-6], в том числе один раз в руководстве разработчика Android, и я до сих пор не уверен на 100%, какой вид использовать.

Согласно презентации в Google I / O 2009 ( http://youtu.be/U4Bk5rmIpic?t=45m10s ) и собственном опыте, холст (View и SurfaceView), похоже, не работает достаточно быстро при обработке более 100 путей.

Кто-нибудь видит возможность реализации приложения с использованием холста или OpenGL – путь?

[1] Android: выбор между SurfaceView и OpenGL (GLSurfaceView)

[2] Поверхностный просмотр или GLSurfaceview?

[3] Разница между SurfaceView и View?

[4] http://pierrchen.blogspot.jp/2014/03/anroid-graphics-surfaceview-all-you.html

[5] Разница между SurfaceView и ImageView

[6] Разница между SurfaceView и GLSurfaceView в Android

Из-за проблем с производительностью вам потребуется использовать аппаратную рендеринг. Дисплеи продолжают становиться плотнее, поэтому прикосновение к каждому пикселю в программном обеспечении замедляется.

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

SurfaceView и GLSurfaceView – почти то же самое; В GLSurfaceView есть только некоторые вспомогательные функции, которые заботятся о некоторых услугах для вас. Вы можете использовать GLES для рендеринга SurfaceView и TextureView. В Grafika есть несколько примеров этого.

Если вы хотите узнать, что происходит под капотом, обратитесь к документу « Архитектура уровня системы» .

Вы можете рассмотреть возможность использования движка 2D-движка с открытым исходным кодом. Это будет работать с настройкой EGL, должен предоставить код для визуализации изображений GLES и т. Д.