Intereting Posts
Как подключить службу? Живой фон Эффект пульсации воды Слишком большое приложение? Невозможно выполнить dex: невозможно объединить новый индекс в инструкцию, отличную от jumbo Замените один фрагмент другим в ViewPager Сохранение большого изображения в PNG Как я могу ударить точки останова (и увидеть номера строк ошибок) при отладке javascript на Android? Как написать последовательную характеристику быстро и стабильно для BLE в Android? Андроидное шоу с всплывающим окном любого приложения Как создать андроид для Android? Android Paint.setTypeface не работает для курсива Изображение, взятое из галереи, отображается в различной ориентации при использовании phonegap в android Какой самый яркий способ назвать ресурсы в Android? Изменение отображаемого имени устройства Android в Eclipse SCAN_RESULTS_AVAILABLE_ACTION возвращает пустой список в Android 6.0 Создание проекта тестирования Android в Eclipse

Прозрачный WebView не работает на Android v4.0

Некоторая предыстория этого вопроса здесь. Это касается работы с известной ошибкой на Android, где фон WebView должен быть прозрачным. Цвет фона AndroidView WebView: прозрачный игнорируется на Android 2.2

Он включает WebView, размещая документ HTML с прозрачным фоном, поэтому WebView прозрачен, и HTML-документ может быть наложен на другие виды.

Добавление следующего метода в подкласс WebView и вызов его из конструктора для меня работает на Android v2, v3 и v4, EXCEPT, когда высота пикселя WebView больше высоты экрана в пикселях (например, WebView находится в ScrollView , Поэтому дольше, чем экран).

protected void setBackgroundToTransparent() { this.setBackgroundColor(Color.TRANSPARENT); this.setBackgroundDrawable(null); if (Build.VERSION.SDK_INT >= 11) // Android v3.0+ try { Method method = View.class.getMethod("setLayerType", int.class, Paint.class); method.invoke(this, 1, new Paint()); // 1 = LAYER_TYPE_SOFTWARE (API11) } catch (Exception e) {} } 

Solutions Collecting From Web of "Прозрачный WebView не работает на Android v4.0"

У меня была аналогичная проблема с уровнем api-авина 16-го уровня, и это решило это:

 view.setLayerType(View.LAYER_TYPE_SOFTWARE, null); // 'view' is a WebView 

Это отключает аппаратное ускорение в представлении в соответствии с документацией: http://developer.android.com/guide/topics/graphics/hardware-accel.html

Я знаю, что это не путь, но поскольку это известная проблема, используйте, что они придумали правильное решение, это делает работу (по крайней мере для меня).

Я столкнулся с той же проблемой, и я обнаружил, что это ошибка в некоторых версиях Android в отношении аппаратного ускорения. Ответ Spiri выше работает, но мне нужно, чтобы мой WebView был аппаратным, потому что ему нужно воспроизводить видео. То, что я нашел, работает хорошо, это следующее:

Вместо того, чтобы использовать

 mWebView.setBackgroundColor(Color.TRANSPARENT); 

То, что я использовал, было:

 mWebView.setBackgroundColor(Color.argb(1, 255, 255, 255)); 

Это работало на всех устройствах Android, на которых у меня была эта проблема.

Я потратил пару часов на это на днях и пробовал каждый ответ, возможно, на эту тему, а также на расследование. Я пришел к тому же вопросу, где, если веб-просмотр был прокручиваемым, тогда он не был бы прозрачным. Единственный способ сделать его прозрачным – отключить графический рендеринг в настройках> Параметры разработчика. В конце концов я просто сделал чек, если включен gpu-рендеринг, а затем установите фон в какой-то цвет, который наилучшим образом соответствует. Если вы придумаете решение, я был бы удивлен, услышав его.