BulletSpan

public class BulletSpan
extends Object implements LeadingMarginSpan, ParcelableSpan

java.lang.Object
   ↳ android.text.style.BulletSpan


A span which styles paragraphs as bullet points (respecting layout direction).

BulletSpans must be attached from the first character to the last character of a single paragraph, otherwise the bullet point will not be displayed but the first paragraph encountered will have a leading margin.

BulletSpans allow configuring the following elements:

  • gap width - the distance, in pixels, between the bullet point and the paragraph. Default value is 2px.
  • color - the bullet point color. By default, the bullet point color is 0 - no color, so it uses the TextView's text color.
  • bullet radius - the radius, in pixels, of the bullet point. Default value is 4px.
For example, a BulletSpan using the default values can be constructed like this:
SpannableString string = new SpannableString("Text with\nBullet point");
string.setSpan(new BulletSpan(), 10, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
BulletSpan constructed with default values.

To construct a BulletSpan with a gap width of 40px, green bullet point and bullet radius of 20px:

SpannableString string = new SpannableString("Text with\nBullet point");
string.setSpan(new BulletSpan(40, color, 20), 10, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
Customized BulletSpan.

Summary

Constants

int STANDARD_GAP_WIDTH

Inherited constants

Public constructors

BulletSpan()

Creates a BulletSpan with the default values.

BulletSpan(int gapWidth)

Creates a BulletSpan based on a gap width

BulletSpan(int gapWidth, int color)

Creates a BulletSpan based on a gap width and a color integer.

BulletSpan(int gapWidth, int color, int bulletRadius)

Creates a BulletSpan based on a gap width and a color integer.

BulletSpan(Parcel src)

Creates a BulletSpan from a parcel.

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

void drawLeadingMargin(Canvas canvas, Paint paint, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout)

Renders the leading margin.

int getBulletRadius()

Get the radius, in pixels, of the bullet point.

int getColor()

Get the bullet point color.

int getGapWidth()

Get the distance, in pixels, between the bullet point and the paragraph.

int getLeadingMargin(boolean first)

Returns the amount by which to adjust the leading margin.

int getSpanTypeId()

Return a special type identifier for this span class.

void writeToParcel(Parcel dest, int flags)

Flatten this object in to a Parcel.

Inherited methods

Constants

STANDARD_GAP_WIDTH

added in API level 1
int STANDARD_GAP_WIDTH

Constant Value: 2 (0x00000002)

Public constructors

BulletSpan

added in API level 1
BulletSpan ()

Creates a BulletSpan with the default values.

BulletSpan

added in API level 1
BulletSpan (int gapWidth)

Creates a BulletSpan based on a gap width

Parameters
gapWidth int: the distance, in pixels, between the bullet point and the paragraph.

BulletSpan

added in API level 1
BulletSpan (int gapWidth, 
                int color)

Creates a BulletSpan based on a gap width and a color integer.

Parameters
gapWidth int: the distance, in pixels, between the bullet point and the paragraph.

color int: the bullet point color, as a color integer

BulletSpan

BulletSpan (int gapWidth, 
                int color, 
                int bulletRadius)

Creates a BulletSpan based on a gap width and a color integer.

Parameters
gapWidth int: the distance, in pixels, between the bullet point and the paragraph.

color int: the bullet point color, as a color integer.

bulletRadius int: the radius of the bullet point, in pixels.

BulletSpan

added in API level 3
BulletSpan (Parcel src)

Creates a BulletSpan from a parcel.

Parameters
src Parcel

This value must never be null.

Public methods

describeContents

added in API level 3
int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance.

drawLeadingMargin

added in API level 1
void drawLeadingMargin (Canvas canvas, 
                Paint paint, 
                int x, 
                int dir, 
                int top, 
                int baseline, 
                int bottom, 
                CharSequence text, 
                int start, 
                int end, 
                boolean first, 
                Layout layout)

Renders the leading margin. This is called before the margin has been adjusted by the value returned by getLeadingMargin(boolean).

Parameters
canvas Canvas: the canvas

This value must never be null.

paint Paint: the paint. The this should be left unchanged on exit.

This value must never be null.

x int: the current position of the margin

dir int: the base direction of the paragraph; if negative, the margin is to the right of the text, otherwise it is to the left.

top int: the top of the line

baseline int: the baseline of the line

bottom int: the bottom of the line

text CharSequence: the text

This value must never be null.

start int: the start of the line

end int: the end of the line

first boolean: true if this is the first line of its paragraph

layout Layout: the layout containing this line

This value may be null.

getBulletRadius

int getBulletRadius ()

Get the radius, in pixels, of the bullet point.

Returns
int the radius, in pixels, of the bullet point.

getColor

int getColor ()

Get the bullet point color.

Returns
int the bullet point color

getGapWidth

int getGapWidth ()

Get the distance, in pixels, between the bullet point and the paragraph.

Returns
int the distance, in pixels, between the bullet point and the paragraph.

getLeadingMargin

added in API level 1
int getLeadingMargin (boolean first)

Returns the amount by which to adjust the leading margin. Positive values move away from the leading edge of the paragraph, negative values move towards it.

Parameters
first boolean: true if the request is for the first line of a paragraph, false for subsequent lines

Returns
int the offset for the margin.

getSpanTypeId

added in API level 3
int getSpanTypeId ()

Return a special type identifier for this span class.

Returns
int

writeToParcel

added in API level 3
void writeToParcel (Parcel dest, 
                int flags)

Flatten this object in to a Parcel.

Parameters
dest Parcel: The Parcel in which the object should be written.

This value must never be null.

flags int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE.