diff options
| -rw-r--r-- | core/java/android/widget/ExpandableListView.java | 13 | ||||
| -rw-r--r-- | core/java/android/widget/ListView.java | 16 | ||||
| -rw-r--r-- | graphics/java/android/graphics/drawable/ColorDrawable.java | 12 |
3 files changed, 9 insertions, 32 deletions
diff --git a/core/java/android/widget/ExpandableListView.java b/core/java/android/widget/ExpandableListView.java index 8bd797b..3d21048 100644 --- a/core/java/android/widget/ExpandableListView.java +++ b/core/java/android/widget/ExpandableListView.java @@ -185,7 +185,6 @@ public class ExpandableListView extends ListView { /** Drawable to be used as a divider when it is adjacent to any children */ private Drawable mChildDivider; - private boolean mClipChildDivider; // Bounds of the indicator to be drawn private final Rect mIndicatorRect = new Rect(); @@ -379,7 +378,6 @@ public class ExpandableListView extends ListView { */ public void setChildDivider(Drawable childDivider) { mChildDivider = childDivider; - mClipChildDivider = childDivider != null && childDivider instanceof ColorDrawable; } @Override @@ -396,17 +394,8 @@ public class ExpandableListView extends ListView { pos.groupMetadata.lastChildFlPos != pos.groupMetadata.flPos)) { // These are the cases where we draw the child divider final Drawable divider = mChildDivider; - final boolean clip = mClipChildDivider; - if (!clip) { - divider.setBounds(bounds); - } else { - canvas.save(); - canvas.clipRect(bounds); - } + divider.setBounds(bounds); divider.draw(canvas); - if (clip) { - canvas.restore(); - } pos.recycle(); return; } diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index e5a34e8..7c4897a 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -107,7 +107,6 @@ public class ListView extends AbsListView { private boolean mIsCacheColorOpaque; private boolean mDividerIsOpaque; - private boolean mClipDivider; private boolean mHeaderDividersEnabled; private boolean mFooterDividersEnabled; @@ -3057,20 +3056,9 @@ public class ListView extends AbsListView { void drawDivider(Canvas canvas, Rect bounds, int childIndex) { // This widget draws the same divider for all children final Drawable divider = mDivider; - final boolean clipDivider = mClipDivider; - - if (!clipDivider) { - divider.setBounds(bounds); - } else { - canvas.save(); - canvas.clipRect(bounds); - } + divider.setBounds(bounds); divider.draw(canvas); - - if (clipDivider) { - canvas.restore(); - } } /** @@ -3091,10 +3079,8 @@ public class ListView extends AbsListView { public void setDivider(Drawable divider) { if (divider != null) { mDividerHeight = divider.getIntrinsicHeight(); - mClipDivider = divider instanceof ColorDrawable; } else { mDividerHeight = 0; - mClipDivider = false; } mDivider = divider; mDividerIsOpaque = divider == null || divider.getOpacity() == PixelFormat.OPAQUE; diff --git a/graphics/java/android/graphics/drawable/ColorDrawable.java b/graphics/java/android/graphics/drawable/ColorDrawable.java index 604c602..a25fad4 100644 --- a/graphics/java/android/graphics/drawable/ColorDrawable.java +++ b/graphics/java/android/graphics/drawable/ColorDrawable.java @@ -26,10 +26,8 @@ import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; /** - * A specialized Drawable that fills the Canvas with a specified color, - * with respect to the clip region. Note that a ColorDrawable ignores the ColorFilter. - * It also ignores the Bounds, meaning it will draw everywhere in the current clip, - * even if setBounds(...) was called with a smaller area. + * A specialized Drawable that fills the Canvas with a specified color. + * Note that a ColorDrawable ignores the ColorFilter. * * <p>It can be defined in an XML file with the <code><color></code> element.</p> * @@ -37,6 +35,7 @@ import java.io.IOException; */ public class ColorDrawable extends Drawable { private ColorState mState; + private final Paint mPaint = new Paint(); /** * Creates a new black ColorDrawable. @@ -66,7 +65,10 @@ public class ColorDrawable extends Drawable { @Override public void draw(Canvas canvas) { - canvas.drawColor(mState.mUseColor); + if ((mState.mUseColor >>> 24) != 0) { + mPaint.setColor(mState.mUseColor); + canvas.drawRect(getBounds(), mPaint); + } } /** |
