Intereting Posts
Как перенести проект на другую машину Android – Как скрыть параметр меню для текущего фрагмента JUnit в андроиде Android MVP – могу ли я иметь несколько презентаторов для пользовательских представлений и фрагментов Обрезать изображение после выбора области с использованием обнаружения края в android SpannableString не работает при использовании темы AppCompat Как осуществлять поиск и подключение к определенной сети Wi-Fi в Android программно Android потребляемый: «уже принадлежит этот элемент», но inventory.hasPurchase () – false Использование GridLayout из библиотеки поддержки приводит к «NoSuchMethodError: android.support.v4.view.ViewCompat.getLayoutDirection» Android AnalogClock: программный программный интерфейс OutOfMemoryException при загрузке изображений большого размера с использованием скольжения Присоединение PDF к электронной почте из приложения Android – Размер файла равен нулю Загрузите домашнюю страницу пользователя, работу и избранные места, такие как Google Inbox Android: Выполнение не выполнено для задачи ': app: packageDebug'. > Данные Чтобы отменить отмену AsyncTask не должен периодически проверять флаг в doInBackground, он будет неустойчивым?

Добавить пользовательский код 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