Intereting Posts
Xamarin Android – создание запроса на отдых со сложным параметром (объектом) вызывает исключение, в .NET он отлично работает (с использованием фабрики каналов) Как мы можем работать с дизайном пользовательского интерфейса в Eclipse? Можете ли вы запустить событие, когда Android Dialog будет уволен? Как возобновить предварительный просмотр камеры Android после функции onPictureTaken? Путаница между типами данных OpenCv4Android и C ++ Как восстановить состояние переадресации вызовов в Android-коде Android? CircledImageView всегда имеет прямоугольное изображение перед кругом Блокировка управления медиа-экраном для пользовательского медиаплеера Android – ListView не получает OnItemClick для текстового просмотра с интерактивными ссылками Android Studio с opencv для android ndk, файлы заголовков opencv не найдены Как это работает – requestLocationUpdates () + LocationRequest / Listener Расширение панели инструментов при нажатии EditText Android намерение action_send вариант только один раз Клонирование с GitHub на Android с помощью Terminal IDE Android: анимация в галерее?

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 и т. Д.