From 139e1b5c012630d6ec517fd46c6abb18d1f82694 Mon Sep 17 00:00:00 2001 From: Florina Muntenescu Date: Wed, 24 Jan 2018 15:52:00 +0000 Subject: [PATCH] Updating more spans Test: N/A Bug: 72092996 Change-Id: Iecd3595a03cde2a1d58e4be00b7cf9b6783d4e2a --- .../text/style/DrawableMarginSpan.java | 84 ++++++--- .../text/style/DynamicDrawableSpan.java | 79 ++++++-- .../android/text/style/IconMarginSpan.java | 75 ++++++-- core/java/android/text/style/ImageSpan.java | 173 ++++++++++++++---- .../android/text/style/LineHeightSpan.java | 40 +++- .../android/text/style/MaskFilterSpan.java | 23 ++- core/java/android/text/style/StyleSpan.java | 44 +++-- core/java/android/text/style/TabStopSpan.java | 59 +++--- .../java/android/text/style/TypefaceSpan.java | 44 +++-- core/java/android/text/style/URLSpan.java | 42 ++++- .../images/text/style/drawablemarginspan.png | Bin 0 -> 18930 bytes .../images/text/style/dynamicdrawablespan.png | Bin 0 -> 17443 bytes .../images/text/style/iconmarginspan.png | Bin 0 -> 22271 bytes .../reference/images/text/style/imagespan.png | Bin 0 -> 33683 bytes .../images/text/style/maskfilterspan.png | Bin 0 -> 6411 bytes .../reference/images/text/style/stylespan.png | Bin 0 -> 6371 bytes .../images/text/style/tabstopspan.png | Bin 0 -> 8963 bytes .../images/text/style/typefacespan.png | Bin 0 -> 7749 bytes .../reference/images/text/style/urlspan.png | Bin 0 -> 9769 bytes 19 files changed, 509 insertions(+), 154 deletions(-) create mode 100644 docs/html/reference/images/text/style/drawablemarginspan.png create mode 100644 docs/html/reference/images/text/style/dynamicdrawablespan.png create mode 100644 docs/html/reference/images/text/style/iconmarginspan.png create mode 100644 docs/html/reference/images/text/style/imagespan.png create mode 100644 docs/html/reference/images/text/style/maskfilterspan.png create mode 100644 docs/html/reference/images/text/style/stylespan.png create mode 100644 docs/html/reference/images/text/style/tabstopspan.png create mode 100644 docs/html/reference/images/text/style/typefacespan.png create mode 100644 docs/html/reference/images/text/style/urlspan.png diff --git a/core/java/android/text/style/DrawableMarginSpan.java b/core/java/android/text/style/DrawableMarginSpan.java index 35241796c3c34..cd199b3547c9a 100644 --- a/core/java/android/text/style/DrawableMarginSpan.java +++ b/core/java/android/text/style/DrawableMarginSpan.java @@ -16,60 +16,100 @@ package android.text.style; +import android.annotation.NonNull; +import android.annotation.Px; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.drawable.Drawable; import android.text.Layout; import android.text.Spanned; -public class DrawableMarginSpan -implements LeadingMarginSpan, LineHeightSpan -{ - public DrawableMarginSpan(Drawable b) { - mDrawable = b; +/** + * A span which adds a drawable and a padding to the paragraph it's attached to. + *

+ * If the height of the drawable is bigger than the height of the line it's attached to then the + * line height is increased to fit the drawable. DrawableMarginSpan allows setting a + * padding between the drawable and the text. The default value is 0. The span must be set from the + * beginning of the text, otherwise either the span won't be rendered or it will be rendered + * incorrectly. + *

+ * For example, a drawable and a padding of 20px can be added like this: + *

{@code SpannableString string = new SpannableString("Text with a drawable.");
+ * string.setSpan(new DrawableMarginSpan(drawable, 20), 0, string.length(),
+ * Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);}
+ * + *
Text with a drawable and a padding.
+ *

+ * + * @see IconMarginSpan for working with a {@link android.graphics.Bitmap} instead of + * a {@link Drawable}. + */ +public class DrawableMarginSpan implements LeadingMarginSpan, LineHeightSpan { + private static final int STANDARD_PAD_WIDTH = 0; + + @NonNull + private final Drawable mDrawable; + @Px + private final int mPad; + + /** + * Creates a {@link DrawableMarginSpan} from a {@link Drawable}. The pad width will be 0. + * + * @param drawable the drawable to be added + */ + public DrawableMarginSpan(@NonNull Drawable drawable) { + this(drawable, STANDARD_PAD_WIDTH); } - public DrawableMarginSpan(Drawable b, int pad) { - mDrawable = b; + /** + * Creates a {@link DrawableMarginSpan} from a {@link Drawable} and a padding, in pixels. + * + * @param drawable the drawable to be added + * @param pad the distance between the drawable and the text + */ + public DrawableMarginSpan(@NonNull Drawable drawable, int pad) { + mDrawable = drawable; mPad = pad; } + @Override public int getLeadingMargin(boolean first) { return mDrawable.getIntrinsicWidth() + mPad; } - public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, - int top, int baseline, int bottom, - CharSequence text, int start, int end, - boolean first, Layout layout) { + @Override + public void drawLeadingMargin(@NonNull Canvas c, @NonNull Paint p, int x, int dir, + int top, int baseline, int bottom, + @NonNull CharSequence text, int start, int end, + boolean first, @NonNull Layout layout) { int st = ((Spanned) text).getSpanStart(this); - int ix = (int)x; - int itop = (int)layout.getLineTop(layout.getLineForOffset(st)); + int ix = (int) x; + int itop = (int) layout.getLineTop(layout.getLineForOffset(st)); int dw = mDrawable.getIntrinsicWidth(); int dh = mDrawable.getIntrinsicHeight(); // XXX What to do about Paint? - mDrawable.setBounds(ix, itop, ix+dw, itop+dh); + mDrawable.setBounds(ix, itop, ix + dw, itop + dh); mDrawable.draw(c); } - public void chooseHeight(CharSequence text, int start, int end, - int istartv, int v, - Paint.FontMetricsInt fm) { + @Override + public void chooseHeight(@NonNull CharSequence text, int start, int end, + int istartv, int v, + @NonNull Paint.FontMetricsInt fm) { if (end == ((Spanned) text).getSpanEnd(this)) { int ht = mDrawable.getIntrinsicHeight(); int need = ht - (v + fm.descent - fm.ascent - istartv); - if (need > 0) + if (need > 0) { fm.descent += need; + } need = ht - (v + fm.bottom - fm.top - istartv); - if (need > 0) + if (need > 0) { fm.bottom += need; + } } } - - private Drawable mDrawable; - private int mPad; } diff --git a/core/java/android/text/style/DynamicDrawableSpan.java b/core/java/android/text/style/DynamicDrawableSpan.java index 5b8a6dd3bf6fb..1b16f3345bfa3 100644 --- a/core/java/android/text/style/DynamicDrawableSpan.java +++ b/core/java/android/text/style/DynamicDrawableSpan.java @@ -16,6 +16,9 @@ package android.text.style; +import android.annotation.IntRange; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; @@ -24,32 +27,71 @@ import android.graphics.drawable.Drawable; import java.lang.ref.WeakReference; /** + * Span that replaces the text it's attached to with a {@link Drawable} that can be aligned with + * the bottom or with the baseline of the surrounding text. + *

+ * For an implementation that constructs the drawable from various sources (Bitmap, + * Drawable, resource id or Uri) use {@link ImageSpan}. + *

+ * A simple implementation of DynamicDrawableSpan that uses drawables from resources + * looks like this: + *

+ * class MyDynamicDrawableSpan extends DynamicDrawableSpan {
  *
+ * private final Context mContext;
+ * private final int mResourceId;
+ *
+ * public MyDynamicDrawableSpan(Context context, @DrawableRes int resourceId) {
+ *     mContext = context;
+ *     mResourceId = resourceId;
+ * }
+ *
+ * {@literal @}Override
+ * public Drawable getDrawable() {
+ *      Drawable drawable = mContext.getDrawable(mResourceId);
+ *      drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+ *      return drawable;
+ * }
+ * }
+ * The class can be used like this: + *
+ * SpannableString string = new SpannableString("Text with a drawable span");
+ * string.setSpan(new MyDynamicDrawableSpan(context, R.mipmap.ic_launcher), 12, 20, Spanned
+ * .SPAN_EXCLUSIVE_EXCLUSIVE);
+ * + *
Replacing text with a drawable.
*/ public abstract class DynamicDrawableSpan extends ReplacementSpan { - private static final String TAG = "DynamicDrawableSpan"; - + /** * A constant indicating that the bottom of this span should be aligned * with the bottom of the surrounding text, i.e., at the same level as the * lowest descender in the text. */ public static final int ALIGN_BOTTOM = 0; - + /** * A constant indicating that the bottom of this span should be aligned * with the baseline of the surrounding text. */ public static final int ALIGN_BASELINE = 1; - + protected final int mVerticalAlignment; - + + private WeakReference mDrawableRef; + + /** + * Creates a {@link DynamicDrawableSpan}. The default vertical alignment is + * {@link #ALIGN_BOTTOM} + */ public DynamicDrawableSpan() { mVerticalAlignment = ALIGN_BOTTOM; } /** - * @param verticalAlignment one of {@link #ALIGN_BOTTOM} or {@link #ALIGN_BASELINE}. + * Creates a {@link DynamicDrawableSpan} based on a vertical alignment.\ + * + * @param verticalAlignment one of {@link #ALIGN_BOTTOM} or {@link #ALIGN_BASELINE} */ protected DynamicDrawableSpan(int verticalAlignment) { mVerticalAlignment = verticalAlignment; @@ -64,22 +106,22 @@ public abstract class DynamicDrawableSpan extends ReplacementSpan { } /** - * Your subclass must implement this method to provide the bitmap + * Your subclass must implement this method to provide the bitmap * to be drawn. The dimensions of the bitmap must be the same * from each call to the next. */ public abstract Drawable getDrawable(); @Override - public int getSize(Paint paint, CharSequence text, - int start, int end, - Paint.FontMetricsInt fm) { + public int getSize(@NonNull Paint paint, CharSequence text, + @IntRange(from = 0) int start, @IntRange(from = 0) int end, + @Nullable Paint.FontMetricsInt fm) { Drawable d = getCachedDrawable(); Rect rect = d.getBounds(); if (fm != null) { - fm.ascent = -rect.bottom; - fm.descent = 0; + fm.ascent = -rect.bottom; + fm.descent = 0; fm.top = fm.ascent; fm.bottom = 0; @@ -89,12 +131,12 @@ public abstract class DynamicDrawableSpan extends ReplacementSpan { } @Override - public void draw(Canvas canvas, CharSequence text, - int start, int end, float x, - int top, int y, int bottom, Paint paint) { + public void draw(@NonNull Canvas canvas, CharSequence text, + @IntRange(from = 0) int start, @IntRange(from = 0) int end, float x, + int top, int y, int bottom, @NonNull Paint paint) { Drawable b = getCachedDrawable(); canvas.save(); - + int transY = bottom - b.getBounds().bottom; if (mVerticalAlignment == ALIGN_BASELINE) { transY -= paint.getFontMetricsInt().descent; @@ -109,8 +151,9 @@ public abstract class DynamicDrawableSpan extends ReplacementSpan { WeakReference wr = mDrawableRef; Drawable d = null; - if (wr != null) + if (wr != null) { d = wr.get(); + } if (d == null) { d = getDrawable(); @@ -119,7 +162,5 @@ public abstract class DynamicDrawableSpan extends ReplacementSpan { return d; } - - private WeakReference mDrawableRef; } diff --git a/core/java/android/text/style/IconMarginSpan.java b/core/java/android/text/style/IconMarginSpan.java index 304c83f19f02c..ad78bd5746960 100644 --- a/core/java/android/text/style/IconMarginSpan.java +++ b/core/java/android/text/style/IconMarginSpan.java @@ -16,57 +16,98 @@ package android.text.style; +import android.annotation.IntRange; +import android.annotation.NonNull; +import android.annotation.Px; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.text.Layout; import android.text.Spanned; -public class IconMarginSpan -implements LeadingMarginSpan, LineHeightSpan -{ - public IconMarginSpan(Bitmap b) { - mBitmap = b; +/** + * Paragraph affecting span, that draws a bitmap at the beginning of a text. The span also allows + * setting a padding between the bitmap and the text. The default value of the padding is 0px. The + * span should be attached from the first character of the text. + *

+ * For example, an IconMarginSpan with a bitmap and a padding of 30px can be set + * like this: + *

+ * SpannableString string = new SpannableString("Text with icon and padding");
+ * string.setSpan(new IconMarginSpan(bitmap, 30), 0, string.length(),
+ * Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ * 
+ * + *
Text with IconMarginSpan
+ *

+ * + * @see DrawableMarginSpan for working with a {@link android.graphics.drawable.Drawable} instead of + * a {@link Bitmap}. + */ +public class IconMarginSpan implements LeadingMarginSpan, LineHeightSpan { + + @NonNull + private final Bitmap mBitmap; + @Px + private final int mPad; + + /** + * Creates an {@link IconMarginSpan} from a {@link Bitmap}. + * + * @param bitmap bitmap to be rendered at the beginning of the text + */ + public IconMarginSpan(@NonNull Bitmap bitmap) { + this(bitmap, 0); } - public IconMarginSpan(Bitmap b, int pad) { - mBitmap = b; + /** + * Creates an {@link IconMarginSpan} from a {@link Bitmap}. + * + * @param bitmap bitmap to be rendered at the beginning of the text + * @param pad padding width, in pixels, between the bitmap and the text + */ + public IconMarginSpan(@NonNull Bitmap bitmap, @IntRange(from = 0) int pad) { + mBitmap = bitmap; mPad = pad; } + @Override public int getLeadingMargin(boolean first) { return mBitmap.getWidth() + mPad; } + @Override public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, - int top, int baseline, int bottom, - CharSequence text, int start, int end, - boolean first, Layout layout) { + int top, int baseline, int bottom, + CharSequence text, int start, int end, + boolean first, Layout layout) { int st = ((Spanned) text).getSpanStart(this); int itop = layout.getLineTop(layout.getLineForOffset(st)); - if (dir < 0) + if (dir < 0) { x -= mBitmap.getWidth(); + } c.drawBitmap(mBitmap, x, itop, p); } + @Override public void chooseHeight(CharSequence text, int start, int end, - int istartv, int v, - Paint.FontMetricsInt fm) { + int istartv, int v, + Paint.FontMetricsInt fm) { if (end == ((Spanned) text).getSpanEnd(this)) { int ht = mBitmap.getHeight(); int need = ht - (v + fm.descent - fm.ascent - istartv); - if (need > 0) + if (need > 0) { fm.descent += need; + } need = ht - (v + fm.bottom - fm.top - istartv); - if (need > 0) + if (need > 0) { fm.bottom += need; + } } } - private Bitmap mBitmap; - private int mPad; } diff --git a/core/java/android/text/style/ImageSpan.java b/core/java/android/text/style/ImageSpan.java index b0bff680f390a..95f0b43341a27 100644 --- a/core/java/android/text/style/ImageSpan.java +++ b/core/java/android/text/style/ImageSpan.java @@ -17,6 +17,8 @@ package android.text.style; import android.annotation.DrawableRes; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -27,18 +29,49 @@ import android.util.Log; import java.io.InputStream; +/** + * Span that replaces the text it's attached to with a {@link Drawable} that can be aligned with + * the bottom or with the baseline of the surrounding text. The drawable can be constructed from + * varied sources: + *

    + *
  • {@link Bitmap} - see {@link #ImageSpan(Context, Bitmap)} and + * {@link #ImageSpan(Context, Bitmap, int)} + *
  • + *
  • {@link Drawable} - see {@link #ImageSpan(Drawable, int)}
  • + *
  • resource id - see {@link #ImageSpan(Context, int, int)}
  • + *
  • {@link Uri} - see {@link #ImageSpan(Context, Uri, int)}
  • + *
+ * The default value for the vertical alignment is {@link DynamicDrawableSpan#ALIGN_BOTTOM} + *

+ * For example, an ImagedSpan can be used like this: + *

+ * SpannableString string = SpannableString("Bottom: span.\nBaseline: span.");
+ * // using the default alignment: ALIGN_BOTTOM
+ * string.setSpan(ImageSpan(this, R.mipmap.ic_launcher), 7, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ * string.setSpan(ImageSpan(this, R.mipmap.ic_launcher, DynamicDrawableSpan.ALIGN_BASELINE),
+ * 22, 23, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ * 
+ * + *
Text with ImageSpans aligned bottom and baseline.
+ */ public class ImageSpan extends DynamicDrawableSpan { + + @Nullable private Drawable mDrawable; + @Nullable private Uri mContentUri; + @DrawableRes private int mResourceId; + @Nullable private Context mContext; + @Nullable private String mSource; /** * @deprecated Use {@link #ImageSpan(Context, Bitmap)} instead. */ @Deprecated - public ImageSpan(Bitmap b) { + public ImageSpan(@NonNull Bitmap b) { this(null, b, ALIGN_BOTTOM); } @@ -46,80 +79,143 @@ public class ImageSpan extends DynamicDrawableSpan { * @deprecated Use {@link #ImageSpan(Context, Bitmap, int)} instead. */ @Deprecated - public ImageSpan(Bitmap b, int verticalAlignment) { + public ImageSpan(@NonNull Bitmap b, int verticalAlignment) { this(null, b, verticalAlignment); } - public ImageSpan(Context context, Bitmap b) { - this(context, b, ALIGN_BOTTOM); + /** + * Constructs an {@link ImageSpan} from a {@link Context} and a {@link Bitmap} with the default + * alignment {@link DynamicDrawableSpan#ALIGN_BOTTOM} + * + * @param context context used to create a drawable from {@param bitmap} based on the display + * metrics of the resources + * @param bitmap bitmap to be rendered + */ + public ImageSpan(@NonNull Context context, @NonNull Bitmap bitmap) { + this(context, bitmap, ALIGN_BOTTOM); } /** + * Constructs an {@link ImageSpan} from a {@link Context}, a {@link Bitmap} and a vertical + * alignment. + * + * @param context context used to create a drawable from {@param bitmap} based on + * the display metrics of the resources + * @param bitmap bitmap to be rendered * @param verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or - * {@link DynamicDrawableSpan#ALIGN_BASELINE}. + * {@link DynamicDrawableSpan#ALIGN_BASELINE} */ - public ImageSpan(Context context, Bitmap b, int verticalAlignment) { + public ImageSpan(@NonNull Context context, @NonNull Bitmap bitmap, int verticalAlignment) { super(verticalAlignment); mContext = context; mDrawable = context != null - ? new BitmapDrawable(context.getResources(), b) - : new BitmapDrawable(b); + ? new BitmapDrawable(context.getResources(), bitmap) + : new BitmapDrawable(bitmap); int width = mDrawable.getIntrinsicWidth(); int height = mDrawable.getIntrinsicHeight(); - mDrawable.setBounds(0, 0, width > 0 ? width : 0, height > 0 ? height : 0); - } - - public ImageSpan(Drawable d) { - this(d, ALIGN_BOTTOM); + mDrawable.setBounds(0, 0, width > 0 ? width : 0, height > 0 ? height : 0); } /** - * @param verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or - * {@link DynamicDrawableSpan#ALIGN_BASELINE}. + * Constructs an {@link ImageSpan} from a drawable with the default + * alignment {@link DynamicDrawableSpan#ALIGN_BOTTOM}. + * + * @param drawable drawable to be rendered */ - public ImageSpan(Drawable d, int verticalAlignment) { - super(verticalAlignment); - mDrawable = d; - } - - public ImageSpan(Drawable d, String source) { - this(d, source, ALIGN_BOTTOM); + public ImageSpan(@NonNull Drawable drawable) { + this(drawable, ALIGN_BOTTOM); } /** + * Constructs an {@link ImageSpan} from a drawable and a vertical alignment. + * + * @param drawable drawable to be rendered * @param verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or - * {@link DynamicDrawableSpan#ALIGN_BASELINE}. + * {@link DynamicDrawableSpan#ALIGN_BASELINE} */ - public ImageSpan(Drawable d, String source, int verticalAlignment) { + public ImageSpan(@NonNull Drawable drawable, int verticalAlignment) { super(verticalAlignment); - mDrawable = d; + mDrawable = drawable; + } + + /** + * Constructs an {@link ImageSpan} from a drawable and a source with the default + * alignment {@link DynamicDrawableSpan#ALIGN_BOTTOM} + * + * @param drawable drawable to be rendered + * @param source drawable's Uri source + */ + public ImageSpan(@NonNull Drawable drawable, @NonNull String source) { + this(drawable, source, ALIGN_BOTTOM); + } + + /** + * Constructs an {@link ImageSpan} from a drawable, a source and a vertical alignment. + * + * @param drawable drawable to be rendered + * @param source drawable's uri source + * @param verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or + * {@link DynamicDrawableSpan#ALIGN_BASELINE} + */ + public ImageSpan(@NonNull Drawable drawable, @NonNull String source, int verticalAlignment) { + super(verticalAlignment); + mDrawable = drawable; mSource = source; } - public ImageSpan(Context context, Uri uri) { + /** + * Constructs an {@link ImageSpan} from a {@link Context} and a {@link Uri} with the default + * alignment {@link DynamicDrawableSpan#ALIGN_BOTTOM}. The Uri source can be retrieved via + * {@link #getSource()} + * + * @param context context used to create a drawable from {@param bitmap} based on the display + * metrics of the resources + * @param uri {@link Uri} used to construct the drawable that will be rendered + */ + public ImageSpan(@NonNull Context context, @NonNull Uri uri) { this(context, uri, ALIGN_BOTTOM); } /** + * Constructs an {@link ImageSpan} from a {@link Context}, a {@link Uri} and a vertical + * alignment. The Uri source can be retrieved via {@link #getSource()} + * + * @param context context used to create a drawable from {@param bitmap} based on + * the display + * metrics of the resources + * @param uri {@link Uri} used to construct the drawable that will be rendered. * @param verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or - * {@link DynamicDrawableSpan#ALIGN_BASELINE}. + * {@link DynamicDrawableSpan#ALIGN_BASELINE} */ - public ImageSpan(Context context, Uri uri, int verticalAlignment) { + public ImageSpan(@NonNull Context context, @NonNull Uri uri, int verticalAlignment) { super(verticalAlignment); mContext = context; mContentUri = uri; mSource = uri.toString(); } - public ImageSpan(Context context, @DrawableRes int resourceId) { + /** + * Constructs an {@link ImageSpan} from a {@link Context} and a resource id with the default + * alignment {@link DynamicDrawableSpan#ALIGN_BOTTOM} + * + * @param context context used to retrieve the drawable from resources + * @param resourceId drawable resource id based on which the drawable is retrieved + */ + public ImageSpan(@NonNull Context context, @DrawableRes int resourceId) { this(context, resourceId, ALIGN_BOTTOM); } /** + * Constructs an {@link ImageSpan} from a {@link Context}, a resource id and a vertical + * alignment. + * + * @param context context used to retrieve the drawable from resources + * @param resourceId drawable resource id based on which the drawable is retrieved. * @param verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or - * {@link DynamicDrawableSpan#ALIGN_BASELINE}. + * {@link DynamicDrawableSpan#ALIGN_BASELINE} */ - public ImageSpan(Context context, @DrawableRes int resourceId, int verticalAlignment) { + public ImageSpan(@NonNull Context context, @DrawableRes int resourceId, + int verticalAlignment) { super(verticalAlignment); mContext = context; mResourceId = resourceId; @@ -128,10 +224,10 @@ public class ImageSpan extends DynamicDrawableSpan { @Override public Drawable getDrawable() { Drawable drawable = null; - + if (mDrawable != null) { drawable = mDrawable; - } else if (mContentUri != null) { + } else if (mContentUri != null) { Bitmap bitmap = null; try { InputStream is = mContext.getContentResolver().openInputStream( @@ -142,7 +238,7 @@ public class ImageSpan extends DynamicDrawableSpan { drawable.getIntrinsicHeight()); is.close(); } catch (Exception e) { - Log.e("sms", "Failed to loaded content " + mContentUri, e); + Log.e("ImageSpan", "Failed to loaded content " + mContentUri, e); } } else { try { @@ -150,8 +246,8 @@ public class ImageSpan extends DynamicDrawableSpan { drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); } catch (Exception e) { - Log.e("sms", "Unable to find resource: " + mResourceId); - } + Log.e("ImageSpan", "Unable to find resource: " + mResourceId); + } } return drawable; @@ -159,9 +255,12 @@ public class ImageSpan extends DynamicDrawableSpan { /** * Returns the source string that was saved during construction. + * + * @return the source string that was saved during construction + * @see #ImageSpan(Drawable, String) and this{@link #ImageSpan(Context, Uri)} */ + @Nullable public String getSource() { return mSource; } - } diff --git a/core/java/android/text/style/LineHeightSpan.java b/core/java/android/text/style/LineHeightSpan.java index 1ebee82c18a82..50ee5f3875955 100644 --- a/core/java/android/text/style/LineHeightSpan.java +++ b/core/java/android/text/style/LineHeightSpan.java @@ -19,16 +19,42 @@ package android.text.style; import android.graphics.Paint; import android.text.TextPaint; -public interface LineHeightSpan -extends ParagraphStyle, WrapTogetherSpan -{ +/** + * The classes that affect the height of the line should implement this interface. + */ +public interface LineHeightSpan extends ParagraphStyle, WrapTogetherSpan { + /** + * Classes that implement this should define how the height is being calculated. + * + * @param text the text + * @param start the start of the line + * @param end the end of the line + * @param spanstartv the start of the span + * @param lineHeight the line height + * @param fm font metrics of the paint, in integers + */ public void chooseHeight(CharSequence text, int start, int end, - int spanstartv, int v, - Paint.FontMetricsInt fm); + int spanstartv, int lineHeight, + Paint.FontMetricsInt fm); + /** + * The classes that affect the height of the line with respect to density, should implement this + * interface. + */ public interface WithDensity extends LineHeightSpan { + + /** + * Classes that implement this should define how the height is being calculated. + * + * @param text the text + * @param start the start of the line + * @param end the end of the line + * @param spanstartv the start of the span + * @param lineHeight the line height + * @param paint the paint + */ public void chooseHeight(CharSequence text, int start, int end, - int spanstartv, int v, - Paint.FontMetricsInt fm, TextPaint paint); + int spanstartv, int lineHeight, + Paint.FontMetricsInt fm, TextPaint paint); } } diff --git a/core/java/android/text/style/MaskFilterSpan.java b/core/java/android/text/style/MaskFilterSpan.java index 2ff52a8f70e8b..d76ef941d42ed 100644 --- a/core/java/android/text/style/MaskFilterSpan.java +++ b/core/java/android/text/style/MaskFilterSpan.java @@ -18,15 +18,36 @@ package android.text.style; import android.graphics.MaskFilter; import android.text.TextPaint; - +/** + * Span that allows setting a {@link MaskFilter} to the text it's attached to. + *

+ * For example, to blur a text, a {@link android.graphics.BlurMaskFilter} can be used: + *

+ * MaskFilter blurMask = new BlurMaskFilter(5f, BlurMaskFilter.Blur.NORMAL);
+ * SpannableString string = new SpannableString("Text with blur mask");
+ * string.setSpan(new MaskFilterSpan(blurMask), 10, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ * 
+ * + *
Text blurred with the MaskFilterSpan.
+ */ public class MaskFilterSpan extends CharacterStyle implements UpdateAppearance { private MaskFilter mFilter; + /** + * Creates a {@link MaskFilterSpan} from a {@link MaskFilter}. + * + * @param filter the filter to be applied to the TextPaint + */ public MaskFilterSpan(MaskFilter filter) { mFilter = filter; } + /** + * Return the mask filter for this span. + * + * @return the mask filter for this span + */ public MaskFilter getMaskFilter() { return mFilter; } diff --git a/core/java/android/text/style/StyleSpan.java b/core/java/android/text/style/StyleSpan.java index f900db502d0d0..bdfa700215f8a 100644 --- a/core/java/android/text/style/StyleSpan.java +++ b/core/java/android/text/style/StyleSpan.java @@ -16,6 +16,7 @@ package android.text.style; +import android.annotation.NonNull; import android.graphics.Paint; import android.graphics.Typeface; import android.os.Parcel; @@ -24,55 +25,76 @@ import android.text.TextPaint; import android.text.TextUtils; /** - * - * Describes a style in a span. + * Span that allows setting the style of the text it's attached to. + * Possible styles are: {@link Typeface#NORMAL}, {@link Typeface#BOLD}, {@link Typeface#ITALIC} and + * {@link Typeface#BOLD_ITALIC}. + *

* Note that styles are cumulative -- if both bold and italic are set in * separate spans, or if the base style is bold and a span calls for italic, * you get bold italic. You can't turn off a style from the base style. - * + *

+ * For example, the StyleSpan can be used like this: + *

+ * SpannableString string = new SpannableString("Bold and italic text");
+ * string.setSpan(new StyleSpan(Typeface.BOLD), 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ * string.setSpan(new StyleSpan(Typeface.ITALIC), 9, 15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ * 
+ * + *
Text styled bold and italic with the StyleSpan.
*/ public class StyleSpan extends MetricAffectingSpan implements ParcelableSpan { private final int mStyle; /** - * + * Creates a {@link StyleSpan} from a style. + * * @param style An integer constant describing the style for this span. Examples - * include bold, italic, and normal. Values are constants defined - * in {@link android.graphics.Typeface}. + * include bold, italic, and normal. Values are constants defined + * in {@link Typeface}. */ public StyleSpan(int style) { mStyle = style; } - public StyleSpan(Parcel src) { + /** + * Creates a {@link StyleSpan} from a parcel. + * + * @param src the parcel + */ + public StyleSpan(@NonNull Parcel src) { mStyle = src.readInt(); } - + + @Override public int getSpanTypeId() { return getSpanTypeIdInternal(); } /** @hide */ + @Override public int getSpanTypeIdInternal() { return TextUtils.STYLE_SPAN; } - + + @Override public int describeContents() { return 0; } + @Override public void writeToParcel(Parcel dest, int flags) { writeToParcelInternal(dest, flags); } /** @hide */ - public void writeToParcelInternal(Parcel dest, int flags) { + @Override + public void writeToParcelInternal(@NonNull Parcel dest, int flags) { dest.writeInt(mStyle); } /** - * Returns the style constant defined in {@link android.graphics.Typeface}. + * Returns the style constant defined in {@link Typeface}. */ public int getStyle() { return mStyle; diff --git a/core/java/android/text/style/TabStopSpan.java b/core/java/android/text/style/TabStopSpan.java index 0566428418150..2cceb2c8ced9d 100644 --- a/core/java/android/text/style/TabStopSpan.java +++ b/core/java/android/text/style/TabStopSpan.java @@ -16,39 +16,54 @@ package android.text.style; +import android.annotation.IntRange; +import android.annotation.Px; + /** - * Represents a single tab stop on a line. + * Paragraph affecting span that changes the position of the tab with respect to + * the leading margin of the line. TabStopSpan will only affect the first tab + * encountered on the first line of the text. */ -public interface TabStopSpan -extends ParagraphStyle -{ - /** - * Returns the offset of the tab stop from the leading margin of the - * line. - * @return the offset - */ - public int getTabStop(); +public interface TabStopSpan extends ParagraphStyle { /** - * The default implementation of TabStopSpan. + * Returns the offset of the tab stop from the leading margin of the line, in pixels. + * + * @return the offset, in pixels */ - public static class Standard - implements TabStopSpan - { + int getTabStop(); + + /** + * The default implementation of TabStopSpan that allows setting the offset of the tab stop + * from the leading margin of the first line of text. + *

+ * Let's consider that we have the following text: "\tParagraph text beginning with tab." + * and we want to move the tab stop with 100px. This can be achieved like this: + *

+     * SpannableString string = new SpannableString("\tParagraph text beginning with tab.");
+     * string.setSpan(new TabStopSpan.Standard(100), 0, string.length(),
+     * Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ * + *
Text with a tab stop and a TabStopSpan
+ */ + class Standard implements TabStopSpan { + + @Px + private int mTabOffset; + /** - * Constructor. + * Constructs a {@link TabStopSpan.Standard} based on an offset. * - * @param where the offset of the tab stop from the leading margin of - * the line + * @param offset the offset of the tab stop from the leading margin of + * the line, in pixels */ - public Standard(int where) { - mTab = where; + public Standard(@IntRange(from = 0) int offset) { + mTabOffset = offset; } + @Override public int getTabStop() { - return mTab; + return mTabOffset; } - - private int mTab; } } diff --git a/core/java/android/text/style/TypefaceSpan.java b/core/java/android/text/style/TypefaceSpan.java index aa622d87c74e7..1622812502087 100644 --- a/core/java/android/text/style/TypefaceSpan.java +++ b/core/java/android/text/style/TypefaceSpan.java @@ -16,6 +16,7 @@ package android.text.style; +import android.annotation.NonNull; import android.graphics.Paint; import android.graphics.Typeface; import android.os.Parcel; @@ -24,42 +25,59 @@ import android.text.TextPaint; import android.text.TextUtils; /** - * Changes the typeface family of the text to which the span is attached. + * Changes the typeface family of the text to which the span is attached. Examples of typeface + * family include "monospace", "serif", and "sans-serif". + *

+ * For example, change the typeface of a text to "monospace" like this: + *

+ * SpannableString string = new SpannableString("Text with typeface span");
+ * string.setSpan(new TypefaceSpan("monospace"), 10, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ * 
+ * + *
Text with "monospace" typeface family.
*/ public class TypefaceSpan extends MetricAffectingSpan implements ParcelableSpan { + private final String mFamily; /** - * @param family The font family for this typeface. Examples include - * "monospace", "serif", and "sans-serif". + * Constructs a {@link TypefaceSpan} based on a font family. + * + * @param family The font family for this typeface. Examples include + * "monospace", "serif", and "sans-serif". */ public TypefaceSpan(String family) { mFamily = family; } - public TypefaceSpan(Parcel src) { + public TypefaceSpan(@NonNull Parcel src) { mFamily = src.readString(); } - + + @Override public int getSpanTypeId() { return getSpanTypeIdInternal(); } /** @hide */ + @Override public int getSpanTypeIdInternal() { return TextUtils.TYPEFACE_SPAN; } - + + @Override public int describeContents() { return 0; } - public void writeToParcel(Parcel dest, int flags) { + @Override + public void writeToParcel(@NonNull Parcel dest, int flags) { writeToParcelInternal(dest, flags); } /** @hide */ - public void writeToParcelInternal(Parcel dest, int flags) { + @Override + public void writeToParcelInternal(@NonNull Parcel dest, int flags) { dest.writeString(mFamily); } @@ -71,16 +89,16 @@ public class TypefaceSpan extends MetricAffectingSpan implements ParcelableSpan } @Override - public void updateDrawState(TextPaint ds) { - apply(ds, mFamily); + public void updateDrawState(@NonNull TextPaint textPaint) { + apply(textPaint, mFamily); } @Override - public void updateMeasureState(TextPaint paint) { - apply(paint, mFamily); + public void updateMeasureState(@NonNull TextPaint textPaint) { + apply(textPaint, mFamily); } - private static void apply(Paint paint, String family) { + private static void apply(@NonNull Paint paint, String family) { int oldStyle; Typeface old = paint.getTypeface(); diff --git a/core/java/android/text/style/URLSpan.java b/core/java/android/text/style/URLSpan.java index 58239efe5c5f6..eab1ef4f6afd5 100644 --- a/core/java/android/text/style/URLSpan.java +++ b/core/java/android/text/style/URLSpan.java @@ -16,6 +16,7 @@ package android.text.style; +import android.annotation.NonNull; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; @@ -27,40 +28,71 @@ import android.text.TextUtils; import android.util.Log; import android.view.View; +/** + * Implementation of the {@link ClickableSpan} that allows setting a url string. When + * selecting and clicking on the text to which the span is attached, the URLSpan + * will try to open the url, by launching an an Activity with an {@link Intent#ACTION_VIEW} intent. + *

+ * For example, a URLSpan can be used like this: + *

+ * SpannableString string = new SpannableString("Text with a url span");
+ * string.setSpan(new URLSpan("http://www.developer.android.com"), 12, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ * 
+ * + *
Text with URLSpan.
+ */ public class URLSpan extends ClickableSpan implements ParcelableSpan { private final String mURL; + /** + * Constructs a {@link URLSpan} from a url string. + * + * @param url the url string + */ public URLSpan(String url) { mURL = url; } - public URLSpan(Parcel src) { + /** + * Constructs a {@link URLSpan} from a parcel. + */ + public URLSpan(@NonNull Parcel src) { mURL = src.readString(); } - + + @Override public int getSpanTypeId() { return getSpanTypeIdInternal(); } /** @hide */ + @Override public int getSpanTypeIdInternal() { return TextUtils.URL_SPAN; } - + + @Override public int describeContents() { return 0; } - public void writeToParcel(Parcel dest, int flags) { + @Override + public void writeToParcel(@NonNull Parcel dest, int flags) { writeToParcelInternal(dest, flags); } /** @hide */ - public void writeToParcelInternal(Parcel dest, int flags) { + @Override + public void writeToParcelInternal(@NonNull Parcel dest, int flags) { dest.writeString(mURL); } + /** + * Get the url string for this span. + * + * @return the url string. + */ public String getURL() { return mURL; } diff --git a/docs/html/reference/images/text/style/drawablemarginspan.png b/docs/html/reference/images/text/style/drawablemarginspan.png new file mode 100644 index 0000000000000000000000000000000000000000..edf926d80130bb830defde1af3bae52411156c07 GIT binary patch literal 18930 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 z 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.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 B8@~Vm literal 0 HcmV?d00001 diff --git a/docs/html/reference/images/text/style/iconmarginspan.png b/docs/html/reference/images/text/style/iconmarginspan.png new file mode 100644 index 0000000000000000000000000000000000000000..8ec39be039f6f98f355ef9666b218896c06a3e7d GIT binary patch literal 22271 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 JCA#)u{{cs*bvpn6 literal 0 HcmV?d00001 diff --git a/docs/html/reference/images/text/style/imagespan.png b/docs/html/reference/images/text/style/imagespan.png new file mode 100644 index 0000000000000000000000000000000000000000..c03e6bb68bd5c6c1e77a4a2d4858d209b4b5859e GIT binary patch literal 33683 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 literal 0 HcmV?d00001 diff --git a/docs/html/reference/images/text/style/maskfilterspan.png b/docs/html/reference/images/text/style/maskfilterspan.png new file mode 100644 index 0000000000000000000000000000000000000000..6e55dbc1509c4e51daf98f50d58958b6f6b2d009 GIT binary patch literal 6411 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 TzCfP?CO}jbH5AI^%tQVMsGNEo literal 0 HcmV?d00001