Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.86
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
#1

Прозрачность WebView - Программирование Android

19.02.2014, 15:08. Просмотров 2894. Ответов 21
Метки нет (Все метки)

В общем то в этом и вопрос
Возможно ли WebView сделать прозрачным? чтобы image, который является Activity backgroung был под ним виден.
background=@android:color/transparent
желаемого эффекта не даёт, если прописать прозрачность в стиль загружаемой в WebView страницы, тоже не даёт нужного эффекта
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 15:08     Прозрачность WebView
Посмотрите здесь:

Кто разбирается в WebView? - Программирование Android
Как сделать чтобы внутренние ссылки (к примеру у меня етсь свой сайт http://мой_сайт.ru, который я подключил в WebView в качестве стартовой...

Вставка изображения в webView - Программирование Android
Spanned stroka = Html.fromHtml(postData()); mWebView = (WebView) findViewById(R.id.webview); ...

Закгрузить файл в WebView - Программирование Android
Всем привет! Я сделал webview для сайта и теперь при загрузки файла на сайт ,при выборе файла нечего не пооисходит ,как сделать ,чтоб можно...

Размер картинки в webview - Программирование Android
привет всем. попробую общими словами, если найдется кто - дам детали. вообще задача сложнее, но хотелось бы понять основы. есть...

Как парсить WebView? - Программирование Android
webView.loadUrl("file:///android_asset/test/index.html");ну вот так я его инициализирую, там работаю, что то делаю. А как потом получить у...

WebView и gif анимация - Программирование Android
Делаю приложение где html c гифками (качаются с инета) выводятся на WebView. Все работает до тех пор пока не появится тяжелая гифка,...

Отправка параметров WebView - Программирование Android
Мне нужно взять и послать на сервер эти параметры (http_X_wap_Profile, IMEI, MSISDN) и добавить в запрос заголовок Http_Referer . Как мне...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ismoil
-8 / 10 / 4
Регистрация: 18.12.2012
Сообщений: 81
19.02.2014, 15:30     Прозрачность WebView #2
почитай про css цвета ))

Добавлено через 1 минуту
android:background= "#FFFFFF"
попробуй так))
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
19.02.2014, 15:46  [ТС]     Прозрачность WebView #3
Цитата Сообщение от Ismoil Посмотреть сообщение
почитай про css цвета ))
я же пишу, css страницы не даёт эффекта, она то прозрачная становится, а подложка компонента не пробиваема

Цитата Сообщение от Ismoil Посмотреть сообщение
android:background= "#FFFFFF"
попробуй так))
где? если в самом WebView, то изменение background не имеет эффекта, хоть красный делаешь, он всё равно остаётся серым и не проозрачным
Ismoil
-8 / 10 / 4
Регистрация: 18.12.2012
Сообщений: 81
19.02.2014, 16:18     Прозрачность WebView #4
http://stackoverflow.com/questions/1...ckground-color
вот что вам нужно))
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
19.02.2014, 17:12     Прозрачность WebView #5
Цитата Сообщение от Ismoil Посмотреть сообщение
android:background= "#FFFFFF"
попробуй так))
во первых так вы поставите фон в белый цвет, что бы было прозрачным необходимо 00 дописать перед ffffff
во вторых по ссылке, которую вы дали, цвет устанавливается такой же как и в background=@android:color/transparent

скорей всего нужно копнуть чуть поглубже, возможно перед отрисовкой страницы он рисует собственный фон. можно попробывать установить альфу на сам вебвейв, но тогда и содержимое станет прозрачным. В общем нужно копать
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
20.02.2014, 08:49     Прозрачность WebView #6
А вообще позаботьтесь о том чтобы у html документа фон прозрачный стоял, а то все выше написанное будет не эффективно
Ismoil
-8 / 10 / 4
Регистрация: 18.12.2012
Сообщений: 81
20.02.2014, 12:39     Прозрачность WebView #7
Цитата Сообщение от NiRamz Посмотреть сообщение
во первых так вы поставите фон в белый цвет, что бы было прозрачным необходимо 00 дописать перед ffffff
во вторых по ссылке, которую вы дали, цвет устанавливается такой же как и в background=@android:color/transparent

скорей всего нужно копнуть чуть поглубже, возможно перед отрисовкой страницы он рисует собственный фон. можно попробывать установить альфу на сам вебвейв, но тогда и содержимое станет прозрачным. В общем нужно копать
скорее всего это так если все это не помогает))
verylazy
Заблокирован
20.02.2014, 13:16     Прозрачность WebView #8
Я не поленился и создал тестовый проект с WebView.
Любопытно, но цвет фона для WebView можно задать в xml, но он почему-то не применяется.
Но если указывать цвет прямо в коде - все работает. Для примера:
Java
1
2
3
4
5
        setContentView(R.layout.activity_main);
        WebView www = (WebView) findViewById(R.id.webView1);
        String s = "OLOLOLO!!!!!!";
        [url]www.loadData(s[/url], "text/html", "utf-8");
        www.setBackgroundColor(Color.parseColor("#00000000"));
И выше правильно человек сказал - фон страницы, которая будет открываться в этом WebView должен быть прозрачный, иначе как будет просвечивать фон активити.
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
20.02.2014, 14:50  [ТС]     Прозрачность WebView #9
Забавно
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    myWebView=(WebView) findViewById(R.id.webView);
   // myWebView.getSettings();
    myWebView.setBackgroundColor(Color.TRANSPARENT);
 
    //прозрачность страницы
    String textStyling="<head>"+
                         "<style>"+
                           "*{"+
                             "background-color: transparent;"+
                             "opacity: 0.5;"+
                           "}"+
                         "</style>"+
                       "</head>";
    //Получаем контент
    String txt=MainActivity.myMenu.get(itemID).get("content").toString();
    //Добавляем к странице UTF8
    txt = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><html>"+textStyling+"<body>"+txt+"</body></html>";
    //Загружаем страницу из строки
    myWebView.loadDataWithBaseURL(null, txt, "text/html", Xml.Encoding.UTF_8.name(), null);
вот пока строка
myWebView.setBackgroundColor(Color.TRANSPARENT);
закоментирована, видим белый непрозрачный(т.к. за ним не видно фона) компонент myWebView на нём отображена прозрачная(из-за opacity видно что она блеклая) страница
http://www.cyberforum.ru/attachment....5&d=1392893252
если строку раскоментировать, он вроде как становится прозрачным(справа видно от полосы прокрутки), но чернеет и не видно содержимого
http://www.cyberforum.ru/attachment....6&d=1392893415
Миниатюры
Прозрачность WebView   Прозрачность WebView  
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
20.02.2014, 15:18  [ТС]     Прозрачность WebView #10
Цитата Сообщение от verylazy Посмотреть сообщение
И выше правильно человек сказал - фон страницы, которая будет открываться в этом WebView должен быть прозрачный, иначе как будет просвечивать фон активити.
это естественно, я в самом первом посте написал, что оно там есть)
Цитата Сообщение от EDIsaev Посмотреть сообщение
если прописать прозрачность в стиль загружаемой в WebView страницы, тоже не даёт нужного эффекта
Добавлено через 19 минут
http://htmlbook.ru/css/background-color
кстати для чего его устанавливать, если у него значение по-умолчанию = transparent ?
verylazy
Заблокирован
20.02.2014, 18:06     Прозрачность WebView #11
Вот код
Java
1
2
3
4
5
6
7
8
        setContentView(R.layout.activity_main);
        WebView www = (WebView) findViewById(R.id.webView1);
        String str = "OLOLOLO!!!!!!";
        [url]www.setBackgroundColor(Color.TRANSPARENT);[/url]
 
        String textStyling = "<head><style>*{background-color: transparent;opacity: 0.5;}</style></head>";
        String txt = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><html>" + textStyling + "<body>" + str + "</body></html>";
        [url]www.loadDataWithBaseURL(null[/url], txt, "text/html", "utf-8", null);
С ним все отлично работает. Если закоментировать строку www.setBackgroundColor(Color.TRANSPARENT); естественно фон webview станет НЕ прозрачный. Эта строка обязательна.
Стиль который применили в html тексте это стиль НЕ webview
Я не понимаю в чем проблема, что не так?
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
24.02.2014, 11:17  [ТС]     Прозрачность WebView #12
Цитата Сообщение от verylazy Посмотреть сообщение
Я не понимаю в чем проблема, что не так?
Наверное в версии, у меня не работает на 2.2...
Вот что нашёл: http://stackoverflow.com/questions/5...on-android-2-2
сейчас разберёмся
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
26.02.2014, 12:27  [ТС]     Прозрачность WebView #13
Не пашет прозрачность)
Вот собрал пустой проект, посмотрите пожалуйста, что не так

там если setBackgroundColor поменять, видно, что прозрачной становится только область полосы прокрутки, так например
myWebView.setBackgroundColor(Color.parseColor("#30AA0000"));
а весь компонент всё равно остаётся не прозрачным
Вложения
Тип файла: 7z WebViewTest.7z (1.52 Мб, 3 просмотров)
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
05.03.2014, 11:24  [ТС]     Прозрачность WebView #14
Ребят, неужели совсем без вариантов?
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
05.03.2014, 11:40     Прозрачность WebView #15
Автор! Все проще. Поменяй кусок кода - получишь то что надо:
Java
1
2
3
4
5
6
7
8
9
String textStyling="<head>"+
            "<style>"+
            "body{"+
            "background-color: opacity: 0;"+
            "color: #e00000;"+
            "opacity: 0.5;"+
            "}"+
            "</style>"+
            "</head>";
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
05.03.2014, 15:14  [ТС]     Прозрачность WebView #16
В какой варсии оно работает?
Пробую на 2.3.3 всё как прежде, черный экран вместо прозрачного
только справа правильная прозрачность (тонкая полоска около 5 мм в зоне прокрутки) скрин в аттаче
и я бы сказал, что
Цитата Сообщение от NOSC Посмотреть сообщение
"background-color: opacity: 0;"
это некорректный синтаксис
background-color: transparent; можно использовать, но это тоже не помогает
Миниатюры
Прозрачность WebView  
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
05.03.2014, 15:16     Прозрачность WebView #17
Цитата Сообщение от EDIsaev Посмотреть сообщение
Пробую на 2.3.3
Да, я на 4 андройде пробовал. Тогда не знаю
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
05.03.2014, 15:24  [ТС]     Прозрачность WebView #18
На 4 да, всё правильно, там должно работать
на 2.х баг какой-то и обойти пока не получается
хотя об него многие в сети спотыкаются, но их советы пока не сработали
verylazy
Заблокирован
05.03.2014, 16:33     Прозрачность WebView #19
Я выше там писал код. Проверял на версии 2.1 - все работает отлично, как и на 4.1 4.2
Остальные версии проверять или можно поверить на слово?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2014, 11:51     Прозрачность WebView
Еще ссылки по теме:

WebView и .html в assets - Программирование Android
Как загрузить локальный файл.html из assets в WebView? Через loadUrl получается, но тогда не работают ссылки на другие файлы, нашел, что...

WebView и реализации tel: - Программирование Android
Приложение разрабатывается в android studio. Используется компонент WebView для отображения одного сайта(при запуске открывается именно...

Получить html из WebView - Программирование Android
Здравствуйте! Собственно вопрос в том, как получить html уже загруженной страницы в WebView?

Передача с webview в jsoup - Программирование Android
Здравствуйте.Подскажите,как решить проблему. Необходимо что бы все хтмл странички открывались спарсенными по условию, к примеру для...

webView не работает с фреймами - Программирование Android
Помогите пожалуйста. Есть файл test.html его код такой: &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
EDIsaev
4 / 4 / 0
Регистрация: 27.03.2012
Сообщений: 132
06.03.2014, 11:51  [ТС]     Прозрачность WebView #20
verylazy, он работает пока прозрачность 100% т.е. так
myWebView.setBackgroundColor(Color.parseColor("#00000000"));
работает, а вот так например
myWebView.setBackgroundColor(Color.parseColor("#80000000"));
или даже вот так
myWebView.setBackgroundColor(Color.argb(80,0,0,0));
не работает... первые же цифры задают альфа-канал по идее, а работает он только на тонкой полоске справа, там прозрачность действительно меняется в зависимости от значения
и даже так
myWebView.setBackgroundColor(Color.argb(0,0,0,1));
уже сразу выставляет черный фон

В вашем примере
Yandex
Объявления
06.03.2014, 11:51     Прозрачность WebView
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru