View.isHardwareAccelerated () é sempre falso

Eu tenho um View que é acelerado por hardware em muitos dispositivos. Dentro dessa visão, preciso verificar se a aceleração de hardware é usada.De acordo com a documentação do Android SDK, isso é feito usandoView.isHardwareAccelerated(). O interessante é que, ao testar dispositivos que suportam aceleração de hardware, esse método sempre retorna falso, mesmo que os próprios modos de exibição estejam sendo acelerados por hardware. (Eu verifiquei conclusivamente isso) fica mais confuso:

Se eu fizer uma ligação paraView.getLayerType() Eu vejo que é sempre definido paraView.LAYER_TYPE_NONE. Se eu ligar paraView.setLayerType(View.LAYER_TYPE_SOFTWARE) Eu posso efetivamente desativar a aceleração de hardware. Posso reativá-lo chamandoView.setLayerType(View.LAYER_TYPE_HARDWARE) OUView.setLayerType(View.LAYER_TYPE_NONE). Por queView.LAYER_TYPE_NONE permitir aceleração de hardware ???

Seguindo em frente, para dispositivos que suportam aceleração de hw, parece que posso apenas verificar o status, verificando seView.LAYER_TYPE_SOFTWARE está definido, no entanto eu tenho minhas suspeitas de que este método não funcionará em dispositivos que não suportam aceleração hw. Eu gostaria de saber se estou usando indevidamenteView.isHardwareAccelerated() ou se está simplesmente quebrado.

EDIT: Eu acho que estou um pouco mais perto de entender o problema. Esta questão também foi útil:

Detectar aceleração de hardware no tempo de execução: Android

Minha teoria de trabalho é que o View ainda não sabe se é acelerado por hardware ou não quando o construtor é chamado, que é onde eu estou fazendo meu teste. Se este é o caso, estou querendo saber o que eu posso substituir na minha classe que estende a visão que me permitirá verificar com êxito a aceleração de hardware. Eu suspeito queView.onSizeChanged(...) funcionaria, mas eu gostaria de evitar o uso de algo que pode potencialmente ser chamado várias vezes.

EDIT # 2: Parece que foi isso. Mudei meu cheque emView.onSizeChanged() e agora relata corretamente. Eu ainda estou querendo saber se há um lugar melhor dentro do meu View que eu possa mover essa verificação embora.

questionAnswers(2)

yourAnswerToTheQuestion