diff options
Diffstat (limited to 'core/java/android/widget/TextView.java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index fac0eb269a26..30831cd70859 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -222,6 +222,7 @@ import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR1; * @attr ref android.R.styleable#TextView_imeActionId * @attr ref android.R.styleable#TextView_editorExtras * @attr ref android.R.styleable#TextView_elegantTextHeight + * @attr ref android.R.styleable#TextView_letterSpacing */ @RemoteView public class TextView extends View implements ViewTreeObserver.OnPreDrawListener { @@ -657,6 +658,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener int shadowcolor = 0; float dx = 0, dy = 0, r = 0; boolean elegant = false; + float letterSpacing = 0; final Resources.Theme theme = context.getTheme(); @@ -737,6 +739,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener case com.android.internal.R.styleable.TextAppearance_elegantTextHeight: elegant = appearance.getBoolean(attr, false); break; + + case com.android.internal.R.styleable.TextAppearance_letterSpacing: + letterSpacing = appearance.getFloat(attr, 0); + break; } } @@ -1078,6 +1084,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener case com.android.internal.R.styleable.TextView_elegantTextHeight: elegant = a.getBoolean(attr, false); break; + + case com.android.internal.R.styleable.TextView_letterSpacing: + letterSpacing = a.getFloat(attr, 0); + break; } } a.recycle(); @@ -1259,6 +1269,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } setRawTextSize(textSize); setElegantTextHeight(elegant); + setLetterSpacing(letterSpacing); if (allCaps) { setTransformationMethod(new AllCapsTransformationMethod(getContext())); @@ -2487,6 +2498,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener com.android.internal.R.styleable.TextAppearance_elegantTextHeight, false)); } + if (appearance.hasValue(com.android.internal.R.styleable.TextAppearance_letterSpacing)) { + setLetterSpacing(appearance.getFloat( + com.android.internal.R.styleable.TextAppearance_letterSpacing, 0)); + } + appearance.recycle(); } @@ -2667,6 +2683,41 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } /** + * @return the extent by which text is currently being letter-spaced. + * This will normally be 0. + * + * @see #setLetterSpacing(float) + * @hide + */ + public float getLetterSpacing() { + return mTextPaint.getLetterSpacing(); + } + + /** + * Sets text letter-spacing. The value is in 'EM' units. Typical values + * for slight expansion will be around 0.05. Negative values tighten text. + * + * @see #getLetterSpacing() + * @see Paint#setFlags + * + * @attr ref android.R.styleable#TextView_letterSpacing + * @hide + */ + @android.view.RemotableViewMethod + public void setLetterSpacing(float letterSpacing) { + if (letterSpacing != mTextPaint.getLetterSpacing()) { + mTextPaint.setLetterSpacing(letterSpacing); + + if (mLayout != null) { + nullLayouts(); + requestLayout(); + invalidate(); + } + } + } + + + /** * Sets the text color for all the states (normal, selected, * focused) to be this color. * |
