am d68781ac: Merge change 24675 into eclair

Merge commit 'd68781ace179e19b70120411baf307104683fa4b' into eclair-plus-aosp

* commit 'd68781ace179e19b70120411baf307104683fa4b':
  change default for dither to true
This commit is contained in:
Mike Reed
2009-09-11 12:01:12 -07:00
committed by Android Git Automerger
5 changed files with 46 additions and 15 deletions

View File

@@ -106,6 +106,13 @@ void NinePatch_Draw(SkCanvas* canvas, const SkRect& bounds,
if (canvas && canvas->quickReject(bounds, SkCanvas::kBW_EdgeType)) {
return;
}
SkPaint defaultPaint;
if (NULL == paint) {
// matches default dither in NinePatchDrawable.java.
defaultPaint.setDither(true);
paint = &defaultPaint;
}
// if our canvas is GL, draw this as a mesh, which will be faster than
// in parts (which is faster for raster)
@@ -158,11 +165,6 @@ void NinePatch_Draw(SkCanvas* canvas, const SkRect& bounds,
if (bitmap.getPixels() == NULL)
return;
SkPaint defaultPaint;
if (NULL == paint) {
paint = &defaultPaint;
}
const bool hasXfer = paint->getXfermode() != NULL;
SkRect dst;
SkIRect src;

View File

@@ -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

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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();