diff options
Diffstat (limited to 'graphics/java/android/graphics/drawable/shapes/RoundRectShape.java')
-rw-r--r-- | graphics/java/android/graphics/drawable/shapes/RoundRectShape.java | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java b/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java deleted file mode 100644 index f4cf15c..0000000 --- a/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.graphics.drawable.shapes; - -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Path; -import android.graphics.RectF; - -/** - * Creates a rounded-corner rectangle. Optionally, an inset (rounded) rectangle - * can be included (to make a sort of "O" shape). - * The rounded rectangle can be drawn to a Canvas with its own draw() method, - * but more graphical control is available if you instead pass - * the RoundRectShape to a {@link android.graphics.drawable.ShapeDrawable}. - */ -public class RoundRectShape extends RectShape { - private float[] mOuterRadii; - private RectF mInset; - private float[] mInnerRadii; - - private RectF mInnerRect; - private Path mPath; // this is what we actually draw - - /** - * RoundRectShape constructor. - * Specifies an outer (round)rect and an optional inner (round)rect. - * - * @param outerRadii An array of 8 radius values, for the outer roundrect. - * The first two floats are for the - * top-left corner (remaining pairs correspond clockwise). - * For no rounded corners on the outer rectangle, - * pass null. - * @param inset A RectF that specifies the distance from the inner - * rect to each side of the outer rect. - * For no inner, pass null. - * @param innerRadii An array of 8 radius values, for the inner roundrect. - * The first two floats are for the - * top-left corner (remaining pairs correspond clockwise). - * For no rounded corners on the inner rectangle, - * pass null. - * If inset parameter is null, this parameter is ignored. - */ - public RoundRectShape(float[] outerRadii, RectF inset, - float[] innerRadii) { - if (outerRadii.length < 8) { - throw new ArrayIndexOutOfBoundsException( - "outer radii must have >= 8 values"); - } - if (innerRadii != null && innerRadii.length < 8) { - throw new ArrayIndexOutOfBoundsException( - "inner radii must have >= 8 values"); - } - mOuterRadii = outerRadii; - mInset = inset; - mInnerRadii = innerRadii; - - if (inset != null) { - mInnerRect = new RectF(); - } - mPath = new Path(); - } - - @Override - public void draw(Canvas canvas, Paint paint) { - canvas.drawPath(mPath, paint); - } - - @Override - protected void onResize(float w, float h) { - super.onResize(w, h); - - RectF r = rect(); - mPath.reset(); - - if (mOuterRadii != null) { - mPath.addRoundRect(r, mOuterRadii, Path.Direction.CW); - } else { - mPath.addRect(r, Path.Direction.CW); - } - if (mInnerRect != null) { - mInnerRect.set(r.left + mInset.left, r.top + mInset.top, - r.right - mInset.right, r.bottom - mInset.bottom); - if (mInnerRect.width() < w && mInnerRect.height() < h) { - if (mInnerRadii != null) { - mPath.addRoundRect(mInnerRect, mInnerRadii, - Path.Direction.CCW); - } else { - mPath.addRect(mInnerRect, Path.Direction.CCW); - } - } - } - } - - @Override - public RoundRectShape clone() throws CloneNotSupportedException { - RoundRectShape shape = (RoundRectShape) super.clone(); - shape.mOuterRadii = mOuterRadii.clone(); - shape.mInnerRadii = mInnerRadii.clone(); - shape.mInset = new RectF(mInset); - shape.mInnerRect = new RectF(mInnerRect); - shape.mPath = new Path(mPath); - return shape; - } -} |