diff options
author | Mike Reed <reed@google.com> | 2009-09-11 09:36:35 -0400 |
---|---|---|
committer | Mike Reed <reed@google.com> | 2009-09-11 14:40:15 -0400 |
commit | 211db4a2874f1a2d0e7a8cb8d33e81fa08801763 (patch) | |
tree | 9c53656f75cc3d88ba7c5d2d8b86504b532be3b7 /graphics/java | |
parent | d304ae583d862250a21b5949fc3dbdf3af1febac (diff) | |
download | frameworks_base-211db4a2874f1a2d0e7a8cb8d33e81fa08801763.zip frameworks_base-211db4a2874f1a2d0e7a8cb8d33e81fa08801763.tar.gz frameworks_base-211db4a2874f1a2d0e7a8cb8d33e81fa08801763.tar.bz2 |
change default for dither to true
Diffstat (limited to 'graphics/java')
4 files changed, 39 insertions, 10 deletions
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java index 1755d4f..30cef67 100644 --- a/graphics/java/android/graphics/drawable/BitmapDrawable.java +++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java @@ -56,7 +56,8 @@ import java.io.IOException; */ public class BitmapDrawable extends Drawable { - private static final int DEFAULT_PAINT_FLAGS = Paint.FILTER_BITMAP_FLAG; + private static final int DEFAULT_PAINT_FLAGS = + Paint.FILTER_BITMAP_FLAG | Paint.DITHER_FLAG; private BitmapState mBitmapState; private Bitmap mBitmap; private final Rect mDstRect = new Rect(); // Gravity.apply() sets this diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java index 6b50406..af1a289 100644 --- a/graphics/java/android/graphics/drawable/DrawableContainer.java +++ b/graphics/java/android/graphics/drawable/DrawableContainer.java @@ -19,12 +19,23 @@ package android.graphics.drawable; import android.graphics.*; public class DrawableContainer extends Drawable implements Drawable.Callback { - + + /** + * To be proper, we should have a getter for dither (and alpha, etc.) + * so that proxy classes like this can save/restore their delegates' + * values, but we don't have getters. Since we do have setters + * (e.g. setDither), which this proxy forwards on, we have to have some + * default/initial setting. + * + * The initial setting for dither is now true, since it almost always seems + * to improve the quality at negligible cost. + */ + private static final boolean DEFAULT_DITHER = true; private DrawableContainerState mDrawableContainerState; private Drawable mCurrDrawable; private int mAlpha = 0xFF; private ColorFilter mColorFilter; - private boolean mDither; + private boolean mDither = DEFAULT_DITHER; private int mCurIndex = -1; private boolean mMutated; diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java index 1b1ea94..924e19e 100644 --- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java +++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java @@ -36,6 +36,8 @@ import java.io.InputStream; * */ public class NinePatchDrawable extends Drawable { + // dithering helps a lot, and is pretty cheap, so default is true + private static final boolean DEFAULT_DITHER = true; private NinePatchState mNinePatchState; private NinePatch mNinePatch; private Rect mPadding; @@ -101,7 +103,11 @@ public class NinePatchDrawable extends Drawable { mNinePatch = state.mNinePatch; mPadding = state.mPadding; mTargetDensity = state.mTargetDensity; - if (state.mDither) setDither(state.mDither); + if (DEFAULT_DITHER != state.mDither) { + // avoid calling the setter unless we need to, since it does a + // lazy allocation of a paint + setDither(state.mDither); + } if (mNinePatch != null) { computeBitmapSize(); } @@ -215,7 +221,8 @@ public class NinePatchDrawable extends Drawable { } final boolean dither = a.getBoolean( - com.android.internal.R.styleable.NinePatchDrawable_dither, false); + com.android.internal.R.styleable.NinePatchDrawable_dither, + DEFAULT_DITHER); final BitmapFactory.Options options = new BitmapFactory.Options(); if (dither) { options.inDither = false; @@ -251,12 +258,10 @@ public class NinePatchDrawable extends Drawable { a.recycle(); } - public Paint getPaint() { if (mPaint == null) { mPaint = new Paint(); - // dithering helps a lot, and is pretty cheap, so default on - mPaint.setDither(true); + mPaint.setDither(DEFAULT_DITHER); } return mPaint; } @@ -327,7 +332,7 @@ public class NinePatchDrawable extends Drawable { int mTargetDensity = DisplayMetrics.DENSITY_DEFAULT; NinePatchState(NinePatch ninePatch, Rect padding) { - this(ninePatch, padding, false); + this(ninePatch, padding, DEFAULT_DITHER); } NinePatchState(NinePatch ninePatch, Rect rect, boolean dither) { diff --git a/graphics/java/android/graphics/drawable/StateListDrawable.java b/graphics/java/android/graphics/drawable/StateListDrawable.java index a8274b1..59cb226 100644 --- a/graphics/java/android/graphics/drawable/StateListDrawable.java +++ b/graphics/java/android/graphics/drawable/StateListDrawable.java @@ -50,6 +50,17 @@ import android.util.StateSet; * @attr ref android.R.styleable#DrawableStates_state_pressed */ public class StateListDrawable extends DrawableContainer { + /** + * To be proper, we should have a getter for dither (and alpha, etc.) + * so that proxy classes like this can save/restore their delegates' + * values, but we don't have getters. Since we do have setters + * (e.g. setDither), which this proxy forwards on, we have to have some + * default/initial setting. + * + * The initial setting for dither is now true, since it almost always seems + * to improve the quality at negligible cost. + */ + private static final boolean DEFAULT_DITHER = true; private final StateListState mStateListState; private boolean mMutated; @@ -105,7 +116,8 @@ public class StateListDrawable extends DrawableContainer { mStateListState.setConstantSize(a.getBoolean( com.android.internal.R.styleable.StateListDrawable_constantSize, false)); - setDither(a.getBoolean(com.android.internal.R.styleable.StateListDrawable_dither, false)); + setDither(a.getBoolean(com.android.internal.R.styleable.StateListDrawable_dither, + DEFAULT_DITHER)); a.recycle(); |