Loading api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -377,6 +377,8 @@ package android { field public static final int colorActivatedHighlight = 16843664; // 0x1010390 field public static final int colorBackground = 16842801; // 0x1010031 field public static final int colorBackgroundCacheHint = 16843435; // 0x10102ab field public static final int colorFilterColor = 16843767; // 0x10103f7 field public static final int colorFilterMode = 16843768; // 0x10103f8 field public static final int colorFocusedHighlight = 16843663; // 0x101038f field public static final int colorForeground = 16842800; // 0x1010030 field public static final int colorForegroundInverse = 16843270; // 0x1010206 core/res/res/values/attrs.xml +17 −0 Original line number Diff line number Diff line Loading @@ -4060,6 +4060,19 @@ RTL (right-to-left). See {@link android.graphics.drawable.Drawable#setAutoMirrored}. --> <attr name="autoMirrored" format="boolean" /> <!-- If set, specifies the color to apply to the drawable as a color filter. By default, no color filter is applied. --> <attr name="colorFilterColor" format="color" /> <!-- When a color filter color is set, specifies its Porter-Duff blending mode. The default value is multiply. --> <attr name="colorFilterMode"> <!-- [Sa * Da, Sc * Dc] --> <enum name="multiply" value="14" /> <!-- [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] --> <enum name="screen" value="15" /> <!-- [Da, Sc * Da + (1 - Sa) * Dc] --> <enum name="src_atop" value="9" /> </attr> </declare-styleable> <!-- Drawable used to render several states. Each state is represented by Loading Loading @@ -4344,6 +4357,8 @@ <!-- Indicates if the drawable needs to be mirrored when its layout direction is RTL (right-to-left). --> <attr name="autoMirrored" /> <attr name="colorFilterColor" /> <attr name="colorFilterMode" /> </declare-styleable> <!-- Drawable used to draw 9-patches. --> Loading @@ -4357,6 +4372,8 @@ <!-- Indicates if the drawable needs to be mirrored when its layout direction is RTL (right-to-left). --> <attr name="autoMirrored" /> <attr name="colorFilterColor" /> <attr name="colorFilterMode" /> </declare-styleable> <!-- Drawable used to draw a single color. --> Loading core/res/res/values/public.xml +2 −0 Original line number Diff line number Diff line Loading @@ -2097,6 +2097,8 @@ <public type="attr" name="windowContentTransitions" /> <public type="attr" name="windowContentTransitionManager" /> <public type="attr" name="translationZ" /> <public type="attr" name="colorFilterColor" /> <public type="attr" name="colorFilterMode" /> <public type="style" name="Widget.Holo.FragmentBreadCrumbs" /> <public type="style" name="Widget.Holo.Light.FragmentBreadCrumbs" /> Loading graphics/java/android/graphics/drawable/BitmapDrawable.java +16 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.graphics.ColorFilter; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.PorterDuff; import android.graphics.PorterDuff.Mode; import android.graphics.Rect; import android.graphics.Shader; import android.graphics.Xfermode; Loading @@ -33,6 +35,7 @@ import android.util.AttributeSet; import android.util.DisplayMetrics; import android.util.LayoutDirection; import android.view.Gravity; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; Loading Loading @@ -579,6 +582,18 @@ public class BitmapDrawable extends Drawable { setAutoMirrored(a.getBoolean(com.android.internal.R.styleable.BitmapDrawable_autoMirrored, false)); if (a.hasValue(com.android.internal.R.styleable.BitmapDrawable_colorFilterColor)) { final int colorFilterColor = a.getColor( com.android.internal.R.styleable.BitmapDrawable_colorFilterColor, 0); final int modeValue = a.getInt( com.android.internal.R.styleable.BitmapDrawable_colorFilterMode, Mode.MULTIPLY.ordinal()); final Mode mode = Drawable.parseColorFilterMode(modeValue); if (mode != null) { setColorFilter(colorFilterColor, mode); } } final Paint paint = mBitmapState.mPaint; paint.setAntiAlias(a.getBoolean(com.android.internal.R.styleable.BitmapDrawable_antialias, paint.isAntiAlias())); Loading Loading @@ -647,7 +662,7 @@ public class BitmapDrawable extends Drawable { } BitmapState(BitmapState bitmapState) { this(bitmapState.mBitmap); mBitmap = bitmapState.mBitmap; mChangingConfigurations = bitmapState.mChangingConfigurations; mGravity = bitmapState.mGravity; mTileModeX = bitmapState.mTileModeX; Loading graphics/java/android/graphics/drawable/Drawable.java +21 −6 Original line number Diff line number Diff line Loading @@ -83,7 +83,7 @@ import java.util.Arrays; * through the {@link Callback} interface. All clients should support this * interface (via {@link #setCallback}) so that animations will work. A * simple way to do this is through the system facilities such as * {@link android.view.View#setBackgroundDrawable(Drawable)} and * {@link android.view.View#setBackground(Drawable)} and * {@link android.widget.ImageView}. * </ul> * Loading Loading @@ -438,8 +438,8 @@ public abstract class Drawable { } /** * Specify an optional colorFilter for the drawable. Pass null to remove * any filters. * Specify an optional color filter for the drawable. Pass null to remove * any existing color filter. */ public abstract void setColorFilter(ColorFilter cf); Loading @@ -453,13 +453,16 @@ public abstract class Drawable { } /** * Specify a color and porterduff mode to be the colorfilter for this * Specify a color and Porter-Duff mode to be the color filter for this * drawable. */ public void setColorFilter(int color, PorterDuff.Mode mode) { setColorFilter(new PorterDuffColorFilter(color, mode)); } /** * Removes the color filter for this drawable. */ public void clearColorFilter() { setColorFilter(null); } Loading Loading @@ -1089,7 +1092,7 @@ public abstract class Drawable { /** * Return a {@link ConstantState} instance that holds the shared state of this Drawable. *q * * @return The ConstantState associated to that Drawable. * @see ConstantState * @see Drawable#mutate() Loading @@ -1107,5 +1110,17 @@ public abstract class Drawable { return new BitmapDrawable(res, bm); } /** * Parses a {@link android.graphics.PorterDuff.Mode} from a colorFilterMode * attribute's enum value. */ static PorterDuff.Mode parseColorFilterMode(int value) { final PorterDuff.Mode[] modes = PorterDuff.Mode.values(); if (value >= 0 && value < modes.length) { return modes[value]; } return null; } } Loading
api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -377,6 +377,8 @@ package android { field public static final int colorActivatedHighlight = 16843664; // 0x1010390 field public static final int colorBackground = 16842801; // 0x1010031 field public static final int colorBackgroundCacheHint = 16843435; // 0x10102ab field public static final int colorFilterColor = 16843767; // 0x10103f7 field public static final int colorFilterMode = 16843768; // 0x10103f8 field public static final int colorFocusedHighlight = 16843663; // 0x101038f field public static final int colorForeground = 16842800; // 0x1010030 field public static final int colorForegroundInverse = 16843270; // 0x1010206
core/res/res/values/attrs.xml +17 −0 Original line number Diff line number Diff line Loading @@ -4060,6 +4060,19 @@ RTL (right-to-left). See {@link android.graphics.drawable.Drawable#setAutoMirrored}. --> <attr name="autoMirrored" format="boolean" /> <!-- If set, specifies the color to apply to the drawable as a color filter. By default, no color filter is applied. --> <attr name="colorFilterColor" format="color" /> <!-- When a color filter color is set, specifies its Porter-Duff blending mode. The default value is multiply. --> <attr name="colorFilterMode"> <!-- [Sa * Da, Sc * Dc] --> <enum name="multiply" value="14" /> <!-- [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] --> <enum name="screen" value="15" /> <!-- [Da, Sc * Da + (1 - Sa) * Dc] --> <enum name="src_atop" value="9" /> </attr> </declare-styleable> <!-- Drawable used to render several states. Each state is represented by Loading Loading @@ -4344,6 +4357,8 @@ <!-- Indicates if the drawable needs to be mirrored when its layout direction is RTL (right-to-left). --> <attr name="autoMirrored" /> <attr name="colorFilterColor" /> <attr name="colorFilterMode" /> </declare-styleable> <!-- Drawable used to draw 9-patches. --> Loading @@ -4357,6 +4372,8 @@ <!-- Indicates if the drawable needs to be mirrored when its layout direction is RTL (right-to-left). --> <attr name="autoMirrored" /> <attr name="colorFilterColor" /> <attr name="colorFilterMode" /> </declare-styleable> <!-- Drawable used to draw a single color. --> Loading
core/res/res/values/public.xml +2 −0 Original line number Diff line number Diff line Loading @@ -2097,6 +2097,8 @@ <public type="attr" name="windowContentTransitions" /> <public type="attr" name="windowContentTransitionManager" /> <public type="attr" name="translationZ" /> <public type="attr" name="colorFilterColor" /> <public type="attr" name="colorFilterMode" /> <public type="style" name="Widget.Holo.FragmentBreadCrumbs" /> <public type="style" name="Widget.Holo.Light.FragmentBreadCrumbs" /> Loading
graphics/java/android/graphics/drawable/BitmapDrawable.java +16 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.graphics.ColorFilter; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.PorterDuff; import android.graphics.PorterDuff.Mode; import android.graphics.Rect; import android.graphics.Shader; import android.graphics.Xfermode; Loading @@ -33,6 +35,7 @@ import android.util.AttributeSet; import android.util.DisplayMetrics; import android.util.LayoutDirection; import android.view.Gravity; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; Loading Loading @@ -579,6 +582,18 @@ public class BitmapDrawable extends Drawable { setAutoMirrored(a.getBoolean(com.android.internal.R.styleable.BitmapDrawable_autoMirrored, false)); if (a.hasValue(com.android.internal.R.styleable.BitmapDrawable_colorFilterColor)) { final int colorFilterColor = a.getColor( com.android.internal.R.styleable.BitmapDrawable_colorFilterColor, 0); final int modeValue = a.getInt( com.android.internal.R.styleable.BitmapDrawable_colorFilterMode, Mode.MULTIPLY.ordinal()); final Mode mode = Drawable.parseColorFilterMode(modeValue); if (mode != null) { setColorFilter(colorFilterColor, mode); } } final Paint paint = mBitmapState.mPaint; paint.setAntiAlias(a.getBoolean(com.android.internal.R.styleable.BitmapDrawable_antialias, paint.isAntiAlias())); Loading Loading @@ -647,7 +662,7 @@ public class BitmapDrawable extends Drawable { } BitmapState(BitmapState bitmapState) { this(bitmapState.mBitmap); mBitmap = bitmapState.mBitmap; mChangingConfigurations = bitmapState.mChangingConfigurations; mGravity = bitmapState.mGravity; mTileModeX = bitmapState.mTileModeX; Loading
graphics/java/android/graphics/drawable/Drawable.java +21 −6 Original line number Diff line number Diff line Loading @@ -83,7 +83,7 @@ import java.util.Arrays; * through the {@link Callback} interface. All clients should support this * interface (via {@link #setCallback}) so that animations will work. A * simple way to do this is through the system facilities such as * {@link android.view.View#setBackgroundDrawable(Drawable)} and * {@link android.view.View#setBackground(Drawable)} and * {@link android.widget.ImageView}. * </ul> * Loading Loading @@ -438,8 +438,8 @@ public abstract class Drawable { } /** * Specify an optional colorFilter for the drawable. Pass null to remove * any filters. * Specify an optional color filter for the drawable. Pass null to remove * any existing color filter. */ public abstract void setColorFilter(ColorFilter cf); Loading @@ -453,13 +453,16 @@ public abstract class Drawable { } /** * Specify a color and porterduff mode to be the colorfilter for this * Specify a color and Porter-Duff mode to be the color filter for this * drawable. */ public void setColorFilter(int color, PorterDuff.Mode mode) { setColorFilter(new PorterDuffColorFilter(color, mode)); } /** * Removes the color filter for this drawable. */ public void clearColorFilter() { setColorFilter(null); } Loading Loading @@ -1089,7 +1092,7 @@ public abstract class Drawable { /** * Return a {@link ConstantState} instance that holds the shared state of this Drawable. *q * * @return The ConstantState associated to that Drawable. * @see ConstantState * @see Drawable#mutate() Loading @@ -1107,5 +1110,17 @@ public abstract class Drawable { return new BitmapDrawable(res, bm); } /** * Parses a {@link android.graphics.PorterDuff.Mode} from a colorFilterMode * attribute's enum value. */ static PorterDuff.Mode parseColorFilterMode(int value) { final PorterDuff.Mode[] modes = PorterDuff.Mode.values(); if (value >= 0 && value < modes.length) { return modes[value]; } return null; } }