Here are the examples of the java api class android.text.style.BulletSpan taken from open source projects.
1. KnifeText#containBullet()
Project: Knife
File: KnifeText.java
File: KnifeText.java
protected boolean containBullet(int index) { String[] lines = TextUtils.split(getEditableText().toString(), "\n"); if (index < 0 || index >= lines.length) { return false; } int start = 0; for (int i = 0; i < index; i++) { start = start + lines[i].length() + 1; } int end = start + lines[index].length(); if (start >= end) { return false; } BulletSpan[] spans = getEditableText().getSpans(start, end, BulletSpan.class); return spans.length > 0; }
2. BulletEffect#applyToSelection()
Project: cwac-richedit
File: BulletEffect.java
File: BulletEffect.java
void applyToSelection(RichEditText editor, Selection bullets, Boolean add) { Spannable str = editor.getText(); Selection selection = bullets.extendToFullLine(str); for (BulletSpan span : getBulletSpans(str, selection)) { str.removeSpan(span); } if (add.booleanValue()) { for (Selection chunk : selection.buildSelectionsForLines(str)) { str.setSpan(new BulletSpan(), chunk.getStart(), chunk.getEnd(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); } } }
3. BulletEffect#applyToSelection()
Project: cwac-richedit
File: BulletEffect.java
File: BulletEffect.java
@Override public void applyToSelection(RichEditText editor, Boolean add) { Spannable str = editor.getText(); Selection selection = new Selection(editor).extendToFullLine(str); for (BulletSpan span : getBulletSpans(str, selection)) { str.removeSpan(span); } if (add.booleanValue()) { for (Selection chunk : selection.buildSelectionsForLines(str)) { str.setSpan(new BulletSpan(), chunk.getStart(), chunk.getEnd(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); } } }
4. KnifeText#switchToKnifeStyle()
Project: Knife
File: KnifeText.java
File: KnifeText.java
protected void switchToKnifeStyle(Editable editable, int start, int end) { BulletSpan[] bulletSpans = editable.getSpans(start, end, BulletSpan.class); for (BulletSpan span : bulletSpans) { int spanStart = editable.getSpanStart(span); int spanEnd = editable.getSpanEnd(span); spanEnd = 0 < spanEnd && spanEnd < editable.length() && editable.charAt(spanEnd) == '\n' ? spanEnd - 1 : spanEnd; editable.removeSpan(span); editable.setSpan(new KnifeBulletSpan(bulletColor, bulletRadius, bulletGapWidth), spanStart, spanEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } QuoteSpan[] quoteSpans = editable.getSpans(start, end, QuoteSpan.class); for (QuoteSpan span : quoteSpans) { int spanStart = editable.getSpanStart(span); int spanEnd = editable.getSpanEnd(span); spanEnd = 0 < spanEnd && spanEnd < editable.length() && editable.charAt(spanEnd) == '\n' ? spanEnd - 1 : spanEnd; editable.removeSpan(span); editable.setSpan(new KnifeQuoteSpan(quoteColor, quoteStripeWidth, quoteGapWidth), spanStart, spanEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } URLSpan[] urlSpans = editable.getSpans(start, end, URLSpan.class); for (URLSpan span : urlSpans) { int spanStart = editable.getSpanStart(span); int spanEnd = editable.getSpanEnd(span); editable.removeSpan(span); editable.setSpan(new KnifeURLSpan(span.getURL(), linkColor, linkUnderline), spanStart, spanEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } }
5. SpannedXhtmlGenerator#chunkToXhtml()
Project: cwac-richedit
File: SpannedXhtmlGenerator.java
File: SpannedXhtmlGenerator.java
private void chunkToXhtml(SpannableStringBuilder result, Spanned src, Layout.Alignment align) { BulletSpan[] spans = src.getSpans(0, src.length(), BulletSpan.class); if (spans.length == 0) { result.append(blockToXhtml(src, align)); } else { int lastSpanEnd = -1; boolean inBulletRun = false; for (BulletSpan span : spans) { int spanStart = src.getSpanStart(span); int spanEnd = src.getSpanEnd(span); if (spanStart > lastSpanEnd) { if (inBulletRun) { result.append("</ul>"); inBulletRun = false; } if (spanStart > 0) { int subsequenceStart = (lastSpanEnd < 0 ? 0 : lastSpanEnd); int subsequenceEnd = spanStart; if (src.charAt(spanStart) == '\n' && !inBulletRun) { // to remove leading newline subsequenceEnd--; } result.append(src.subSequence(subsequenceStart, subsequenceEnd)); } result.append("<ul"); result.append(buildAlignStyle(align)); result.append('>'); inBulletRun = true; } result.append("<li>"); Spanned sub = (Spanned) src.subSequence(spanStart, spanEnd - 1); // -1 to remove trailing newline result.append(blockToXhtml(sub, null)); result.append("</li>"); lastSpanEnd = spanEnd; } if (inBulletRun) { result.append("</ul>"); } if (lastSpanEnd < src.length()) { Spanned sub = (Spanned) src.subSequence(lastSpanEnd, src.length()); result.append(blockToXhtml(sub, null)); } } }
6. BulletEffect#extendToBulletedList()
Project: cwac-richedit
File: BulletEffect.java
File: BulletEffect.java
Selection extendToBulletedList(Selection initial, Spannable src, int lastSpanCount) { BulletSpan[] spans = src.getSpans(initial.getStart(), initial.getEnd(), BulletSpan.class); if (spans.length > lastSpanCount) { int firstSelStart = (initial.getStart() > 1 ? initial.getStart() - 2 : 0); Selection chunk = new Selection(firstSelStart, initial.getEnd()).extendToFullLine(src); return (extendToBulletedList(chunk, src, spans.length)); } else { if (spans.length > 0) { int start = src.getSpanStart(spans[0]); for (BulletSpan span : spans) { if (src.getSpanStart(span) < start) start = src.getSpanStart(span); } if (initial.getStart() != start) { initial = new Selection(start, initial.getEnd()); } } return (initial); } }