Intereting Posts
Кнопка андроида пульсации с фоном Не удалось создать контекст 0x3005 RippleDrawable, созданный программным образом, отличается от своего xml-аналога Варианты вариантов плагинов в стиле градиента: метод DSL не найден Использование Kotlin в библиотечном модуле без использования его в модуле приложения Справка по PROXIMITY_SCREEN_OFF_WAKE_LOCK в Android Как реализовать метод onCreateOptionsMenu в файле SherlockFragment? Программно отключить режим энергосбережения приложения на Samsung Аниматоры могут запускаться только в потоках Looper на панели действий Sherlock Как правильно настроить будильник в фиксированное время? Уведомление MediaStyle не отвечает на события RemoteControl. Шрифт Hindi с уровнем API 15 (или Android 4.0.2) Почему я получаю эту строку зеленым цветом в Timeline: Activity_idle id: android.os.BinderProxy@41d2b6d8: 1933928? Невозможно настроить режим действия при использовании панели инструментов Внедрение на андроидном холсте

Добавить пользовательский код css в html с помощью jsoup

Я работаю над Android-приложением, которое загружает HTML-страницу и показывает ее в веб-просмотре. Проблема в том, что я хочу добавить свой собственный css (у загруженного HTML нет CSS или ссылки на css). Как добавить пользовательский CSS в HTML-код с помощью jsoup? Я не могу изменить html. И как веб-просмотр может открыть его впоследствии? спасибо

Несколько путей. Вы можете использовать Element#append() для добавления некоторого фрагмента HTML в элемент.

 Document document = Jsoup.connect(url).get(); Element head = document.head(); head.append("<link rel=\"stylesheet\" href=\"http://example.com/your.css\">"); 

Или используйте Element#attr(name, value) для добавления атрибутов к существующим элементам. Вот пример, который добавляет style="color:pink;" Ко всем ссылкам.

 Document document = Jsoup.connect(url).get(); Elements links = document.select("a"); links.attr("style", "color:pink;"); 

В любом случае, после изменения, получите окончательную строку HTML по Document#html() .

 String html = document.html(); 

Напишите его в файл с помощью PrintWriter#write() (с правой кодировкой).

 String charset = Jsoup.connect(url).response().charset(); // ... Writer writer = new PrintWriter("/file.html", charset); writer.write(html); writer.close(); 

Наконец, откройте его в webview. Поскольку я не могу сказать это сверху, вот только ссылка с примером, который, на мой взгляд, полезен: WebViewDemo.java . Я нашел ссылку на этот блог , кстати (который я, в свою очередь, нашел у Google).

Вероятно, самым простым способом является поиск и замена текста HTML для вставки ваших пользовательских стилей, прежде чем загружать их в ваш WebView . Я делаю это в своем приложении BBC News, чтобы немного смягчить статью статьи. Мой код выглядит так:

 text = text.replace("</head>", "<style>h1 {font-size: x-large;} h1, div.date, div.storybody, img {margin:4px; padding:4px; line-height:1.25;}</style></head>"); 

Посмотрите, как я ищу и заменяю тег заголовка (включая мой собственный </head> в замененном сегменте). Это гарантирует, что новый фрагмент будет идти в нужном темпе на странице.

Есть несколько способов включить ccs в html

Tis я использую, если вы сохранили его как внешний файл:

 <head><link rel="stylesheet" type="text/css" href="mystyle.css" /></head> 

Если вы хотите добавить его в html-файл:

 <head> <style type="text/css"> hr {color:sienna;} p {margin-left:20px;} body {background-image:url("images/back40.gif");} </style> </head> 

Или если вы хотите изменить тег singel:

 <p style="color:sienna;margin-left:20px">This is a paragraph.</p> 

* Редактировать

Любой из этих примеров не должен иметь никаких проблем с отображением.

Ссылка: W3 Schools CSS