diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index cad7ae329530c..a1ced6e01b9b8 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -607,6 +607,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
int typefaceIndex = -1;
int styleIndex = -1;
boolean allCaps = false;
+ int shadowcolor = 0;
+ float dx = 0, dy = 0, r = 0;
final Resources.Theme theme = context.getTheme();
@@ -667,6 +669,22 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
case com.android.internal.R.styleable.TextAppearance_textAllCaps:
allCaps = appearance.getBoolean(attr, false);
break;
+
+ case com.android.internal.R.styleable.TextAppearance_shadowColor:
+ shadowcolor = a.getInt(attr, 0);
+ break;
+
+ case com.android.internal.R.styleable.TextAppearance_shadowDx:
+ dx = a.getFloat(attr, 0);
+ break;
+
+ case com.android.internal.R.styleable.TextAppearance_shadowDy:
+ dy = a.getFloat(attr, 0);
+ break;
+
+ case com.android.internal.R.styleable.TextAppearance_shadowRadius:
+ r = a.getFloat(attr, 0);
+ break;
}
}
@@ -690,8 +708,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
int maxlength = -1;
CharSequence text = "";
CharSequence hint = null;
- int shadowcolor = 0;
- float dx = 0, dy = 0, r = 0;
boolean password = false;
int inputType = EditorInfo.TYPE_NULL;
@@ -2331,6 +2347,19 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
setTypefaceFromAttrs(familyName, typefaceIndex, styleIndex);
+ final int shadowcolor = appearance.getInt(
+ com.android.internal.R.styleable.TextAppearance_shadowColor, 0);
+ if (shadowcolor != 0) {
+ final float dx = appearance.getFloat(
+ com.android.internal.R.styleable.TextAppearance_shadowDx, 0);
+ final float dy = appearance.getFloat(
+ com.android.internal.R.styleable.TextAppearance_shadowDy, 0);
+ final float r = appearance.getFloat(
+ com.android.internal.R.styleable.TextAppearance_shadowRadius, 0);
+
+ setShadowLayer(r, dx, dy, shadowcolor);
+ }
+
if (appearance.getBoolean(com.android.internal.R.styleable.TextAppearance_textAllCaps,
false)) {
setTransformationMethod(new AllCapsTransformationMethod(getContext()));
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 0fb8a105a6e2b..a3e5b2c85382c 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -3061,6 +3061,14 @@
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+