Как понять использует ваше приложение аппаратное ускорение или нет

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

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

 <application
        android:hardwareAccelerated="true"/>

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

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

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

Не правда ли?

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

1 ответ

Решение

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

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

View.isHardwareAccelerated()
Canvas.isHardwareAccelerated()

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

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

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

ура

Другие вопросы по тегам