Доброе утро, коллеги! У меня есть текст в string
Он расположен между: <string name="txt_1"><![CDATA[
и ]]></string>
. Я вызываю его в TextView
разметки (webview
не подходит - не советуйте).
Подключаю возможность применения html
и класс MyHtmlTagHandler
в этом TextView
:
mSelectedItemView2.setText(Html.fromHtml(string2, null, new MyHtmlTagHandler()));
Подключение html позволяет использовать тег <blockquote>
, что является аналогом не поддерживающегося <hr>
- линия разделитель. Но если поместить текст между <blockquote>
и </blockquote>
, то линия разделитель не горизонтальная, а почему-то вертикальная слева. Поэтому первый вопрос: как сделать горизонтальной?
Далее нужно создать выделение текста как на фото. . Я предполагаю как это сделать. Необходимый текст поместить между <blockquote>
и </blockquote>
- зеленая вертикальная линия. А серое выделение текста, скорее всего с помощью <div>
и </div>
. Но как создать стиль для <div>
? В классе MyHtmlTagHandler
прописать, но как это сделать не понимаю. Это второй вопрос.
Последний вопрос. Есть маркированный список в html:
<ul>
<li>Какой-то текст_1 </li>
<li>Какой-то текст_1 </li>
</ul>
И, поскольку простое подключение html не поддерживает тег , то пришлось прописать это в java:
private void processUlOlLi(boolean opening, String tag, Editable output)
{
if (tag.equalsIgnoreCase("ul"))
{
if (opening)
{
lists.push(tag);
}
else
{
lists.pop();
}
}
else if (tag.equalsIgnoreCase("ol"))
{
if (opening)
{
lists.push(tag);
olNextIndex.push(1);//TODO: add support for lists starting other index than 1
}
else
{
lists.pop();
olNextIndex.pop();
}
}
else if (tag.equalsIgnoreCase("li"))
{
if (opening)
{
if (output.length() > 0 && output.charAt(output.length() - 1) != '\n')
{
output.append("\n");
}
String parentList = lists.peek();
if (parentList.equalsIgnoreCase("ol"))
{
start(output, new Ol());
output.append(olNextIndex.peek().toString()).append(". ");
olNextIndex.push(olNextIndex.pop() + 1);
}
else if (parentList.equalsIgnoreCase("ul"))
{
start(output, new Ul());
}
}
else
{
if (lists.peek().equalsIgnoreCase("ul"))
{
if (output.length() > 0 && output.charAt(output.length() - 1) != '\n')
{
output.append("\n");
}
// Nested BulletSpans increases distance between bullet and text, so we must prevent it.
int bulletMargin = indent;
if (lists.size() > 1)
{
bulletMargin = indent - bullet.getLeadingMargin(true);
if (lists.size() > 2)
{
// This get's more complicated when we add a LeadingMarginSpan into the same line:
// we have also counter it's effect to BulletSpan
bulletMargin -= (lists.size() - 2) * listItemIndent;
}
}
BulletSpan newBullet = new BulletSpan(bulletMargin);
end(output,
Ul.class,
new LeadingMarginSpan.Standard(listItemIndent * (lists.size() - 1)),
newBullet);
}
else if (lists.peek().equalsIgnoreCase("ol"))
{
if (output.length() > 0 && output.charAt(output.length() - 1) != '\n')
{
output.append("\n");
}
int numberMargin = listItemIndent * (lists.size() - 1);
if (lists.size() > 2)
{
// Same as in ordered lists: counter the effect of nested Spans
numberMargin -= (lists.size() - 2) * listItemIndent;
}
end(output,
Ol.class,
new LeadingMarginSpan.Standard(numberMargin));
}
}
}
}
Все работает, но есть ли возможность 1) увеличить размер точек (маркеров) и 2) сделать отступ слева больше, чтобы было визуально виден список. Сейчас точки располагаются на одном вертикальном уровне с основным текстом. Естественно  
в string
не помогли. Решать нужно в java
классе, но не вижу как.
Сам текст можно отодвинуть изменив эту строчку в классе:
private static final int indent = 10;
Но точки остаются на месте. Заранее благодарю всех, кто поможет в решении данных проблем.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый деньСделал страничку, на которой отображаю картинку из тэга img src"", но она не отображается до того, как не откроешь браузер с нуля
Картинка разделена на 9 квадратиков, если взяться за правый нижний и потянуть, то потянется сам контент, а потом, когда отпустишь, область...