1

Я хочу включить аппаратное ускорение для приложения.Как понять, использует ваше приложение аппаратное ускорение или нет

Я добавил в Android манифеста

<application 
     android:hardwareAccelerated="true"/> 

Я думаю, что эта линия должна включить аппаратное ускорение на всех целях в приложении, но когда я проверить (с использованием метода view.getLayerType()), я получаю результат 0. Я пришел к выводу, что вы не используете аппаратное ускорение

Я не понимаю, как работает аппаратное ускорение.

Почему, если я повернул аппаратное ускорение на уровне приложения, все представления в приложении вызывают метод view.getLayerType() return 0? Я ожидаю, что он должен вернуться 2, потому что я повернул аппаратное ускорение на более высоком уровне.

Не так ли?

Для каждого представления, вам нужно установить свойство android: layerType в xml?

ответ

0

Тег, о котором вы упоминали, включает аппаратное ускорение, но вам нужно только для API 13 или ниже, поскольку по умолчанию это включено в API версии 14 и выше.

Чтобы проверить, является ли вашим View (или Canvas, для пользовательских представлений вы чертеж) с использованием аппаратного ускорения или нет, вы можете позвонить

View.isHardwareAccelerated() 
Canvas.isHardwareAccelerated() 

getLayerType() возвращает тип слоя вида, который, как ожидается, является NONE по умолчанию:

по умолчанию вид не не слой, а тип слоя LAYER_TYPE_NONE.

Кроме того, имейте в виду, что вы должны позвонить isHardwareAccelearted() после того, как к окну подключено изображение, чтобы получить правильный ответ. До этого ответ может быть неправильным.

Cheers

+0

View.isHardwareAcclederated() действительно возвращает true. благодаря – AndreyNik