В пользовательском представлении, которое у меня есть, я использую Canvas.drawBitmap с исходным растровым изображением, ширина которого превышает 2048 пикселей. Это, конечно, вызывает проблемы, когда аппаратное ускорение включено, когда LogCat извергает W/OpenGLRenderer(4968): Bitmap слишком велик для загрузки в текстуру при каждом вызове drawBitmap.
Поэтому, чтобы обойти это, я попытался вызвать setLayerType(View.LAYER_TYPE_SOFTWARE, null)
в своем представлении. Единственная проблема в том, что это, кажется, не помогает. Когда я пытаюсь запустить свое приложение, LogCat по-прежнему выдает предупреждения, и в итоге ничего не рисуется.
Я не могу понять, почему это так. В этой статье на сайте Android четко сказано:
Вы можете отключить аппаратное ускорение для отдельного представления во время выполнения с помощью следующего кода:
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Я что-то делаю не так? Почему Android не соблюдает вызов setLayerType?
[если это важно: я провожу тестирование на Samsung Galaxy Tab 10.1 под управлением Android 3.2]