Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
#1

Прозрачность WebView

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

В общем то в этом и вопрос
Возможно ли WebView сделать прозрачным? чтобы image, который является Activity backgroung был под ним виден.
background=@android:color/transparent
желаемого эффекта не даёт, если прописать прозрачность в стиль загружаемой в WebView страницы, тоже не даёт нужного эффекта

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 15:08
Ответы с готовыми решениями:

Webview
Всем привет.У меня вопросище. Или я так привык к шарпику, что разобраться...

WebView
Добрый день! Мне нужно выполнить действие после полной загрузки страницы в...

WebView
У меня есть лист меню, как сделать так что бы при нажатии на первый объект так...

Android webview
Здраствуйте!Нужен готовый webview apk.есть примеры?

Из WebView в TextView
С WebView всё легко. Чтобы загрузить страницу, нужно всего-то воспользоваться...

21
Ismoil
-8 / 10 / 5
Регистрация: 18.12.2012
Сообщений: 81
19.02.2014, 15:30 #2
почитай про css цвета ))

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

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

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

скорей всего нужно копнуть чуть поглубже, возможно перед отрисовкой страницы он рисует собственный фон. можно попробывать установить альфу на сам вебвейв, но тогда и содержимое станет прозрачным. В общем нужно копать
скорее всего это так если все это не помогает))
0
verylazy
Заблокирован
20.02.2014, 13:16 #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 должен быть прозрачный, иначе как будет просвечивать фон активити.
0
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
20.02.2014, 14:50  [ТС] #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
0
Миниатюры
Прозрачность WebView   Прозрачность WebView  
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
20.02.2014, 15:18  [ТС] #10
Цитата Сообщение от verylazy Посмотреть сообщение
И выше правильно человек сказал - фон страницы, которая будет открываться в этом WebView должен быть прозрачный, иначе как будет просвечивать фон активити.
это естественно, я в самом первом посте написал, что оно там есть)
Цитата Сообщение от EDIsaev Посмотреть сообщение
если прописать прозрачность в стиль загружаемой в WebView страницы, тоже не даёт нужного эффекта
Добавлено через 19 минут
http://htmlbook.ru/css/background-color
кстати для чего его устанавливать, если у него значение по-умолчанию = transparent ?
0
verylazy
Заблокирован
20.02.2014, 18:06 #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
Я не понимаю в чем проблема, что не так?
0
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
24.02.2014, 11:17  [ТС] #12
Цитата Сообщение от verylazy Посмотреть сообщение
Я не понимаю в чем проблема, что не так?
Наверное в версии, у меня не работает на 2.2...
Вот что нашёл: http://stackoverflow.com/questions/5...on-android-2-2
сейчас разберёмся
0
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
26.02.2014, 12:27  [ТС] #13
Не пашет прозрачность)
Вот собрал пустой проект, посмотрите пожалуйста, что не так

там если setBackgroundColor поменять, видно, что прозрачной становится только область полосы прокрутки, так например
myWebView.setBackgroundColor(Color.parseColor("#30AA0000"));
а весь компонент всё равно остаётся не прозрачным
0
Вложения
Тип файла: 7z WebViewTest.7z (1.52 Мб, 3 просмотров)
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
05.03.2014, 11:24  [ТС] #14
Ребят, неужели совсем без вариантов?
0
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
05.03.2014, 11:40 #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>";
0
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
05.03.2014, 15:14  [ТС] #16
В какой варсии оно работает?
Пробую на 2.3.3 всё как прежде, черный экран вместо прозрачного
только справа правильная прозрачность (тонкая полоска около 5 мм в зоне прокрутки) скрин в аттаче
и я бы сказал, что
Цитата Сообщение от NOSC Посмотреть сообщение
"background-color: opacity: 0;"
это некорректный синтаксис
background-color: transparent; можно использовать, но это тоже не помогает
0
Миниатюры
Прозрачность WebView  
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
05.03.2014, 15:16 #17
Цитата Сообщение от EDIsaev Посмотреть сообщение
Пробую на 2.3.3
Да, я на 4 андройде пробовал. Тогда не знаю
0
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
05.03.2014, 15:24  [ТС] #18
На 4 да, всё правильно, там должно работать
на 2.х баг какой-то и обойти пока не получается
хотя об него многие в сети спотыкаются, но их советы пока не сработали
0
verylazy
Заблокирован
05.03.2014, 16:33 #19
Я выше там писал код. Проверял на версии 2.1 - все работает отлично, как и на 4.1 4.2
Остальные версии проверять или можно поверить на слово?
0
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
06.03.2014, 11:51  [ТС] #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));
уже сразу выставляет черный фон

В вашем примере
0
06.03.2014, 11:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2014, 11:51

Работа с webview
Привет ребята! У меня следующая проблема. for (String key : map.keySet()) { ...

Работа с webview
Добрый день! Пишу приложение с двумя activity. На первом находится несколько...

WebView zoom
Необходимо автоматически промасштабировать содержимое WebView. WebView.zoomBy...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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