Возможно, что-то глупое происходит, но я пытаюсь включить аппаратное ускорение в таргетинге на приложения 3.1, за this tutorial.Аппаратное ускорение не включено
Я добавил следующее в мой манифест:
<uses-sdk
android:targetSdkVersion="12"
android:minSdkVersion="12" />
<application
...
android:hardwareAccelerated="true">
Когда я проверить состояние аппаратного ускорения после View прилагается (по телефону isHardwareAccelerated()
в переопределенная onAttachedToWindow()
) Я вернулся верно, так что все выглядит отлично. Проблема в том, что Canvas SurfaceView НЕ ускоряется, так как canvas.isHardwareAccelerated()
возвращает false. Я проверяю surfaceCreated()
, и я тоже там верю, поэтому нет идеи, что Холст теряет эту настройку.
Любые указатели?
EDIT1:
Найдено this и this на группе разработчиков Google, но я действительно проверка после того, как View прилагается, если я проверяю это в onAttachedToWindow()
, верно? Это на планшете Lenovo с 3,1 BTW.
EDIT2:
Я попытался отключить ускорение с помощью установки
<application
...
android:hardwareAccelerated="false">
И я до сих пор видя правда вернулся из представления в onAttachedToWindow()
, так что что-то здесь не так. Я не могу явно переключать hw ускорение от кода, может быть, проблема с конкретным устройством?
Кроме того, я вижу следующую строку спорадически в LogCat когда SurfaceView создана:
surface (identity=524) is invalid, err=-19 (No such device)
EDIT3:
Просто мысли вслух здесь, но есть ли шанс, что Canvas не ускоряется из-за того, что он находится на собственной ветке, через типичную реализацию SurfaceView, которая использует цикл рисования, например, Lunar Lander?