Android examples for Graphics:Rectangle
create Round Rect Path
//package com.java2s; import android.graphics.Path; import android.graphics.RectF; public class Main { // 1??????????2 // ? ? // 4?????????3 public static Path createRoundRectPath(float aWidth, float aHeight, float aXPadding, float aYPadding, float aCornerSize, boolean isRound1, boolean isRound2, boolean isRound3, boolean isRound4) { return createRoundRectPath(aWidth, aHeight, aXPadding, aXPadding, aYPadding, aYPadding, aCornerSize, isRound1, isRound2, isRound3, isRound4);//from w w w.j av a2 s . c o m } // 1??????????2 // ? ? // 4?????????3 public static Path createRoundRectPath(float aWidth, float aHeight, float aPaddingLeft, float aPaddingRight, float aPaddingTop, float aPaddingBottom, float aCornerSize, boolean isRound1, boolean isRound2, boolean isRound3, boolean isRound4) { Path path = new Path(); RectF oval; /** ????? */ if (isRound1) { path.moveTo(aPaddingLeft, aPaddingTop + aCornerSize); oval = new RectF(aPaddingLeft, aPaddingTop, aPaddingLeft + aCornerSize * 2, aPaddingTop + aCornerSize * 2); path.arcTo(oval, 180, 90); } else { path.moveTo(aPaddingLeft, aPaddingTop); } /** ??? */ if (isRound2) { path.lineTo(aWidth - aPaddingRight - aCornerSize, aPaddingTop); oval = new RectF(aWidth - aPaddingRight - aCornerSize * 2, aPaddingTop, aWidth - aPaddingRight, aPaddingTop + aCornerSize * 2); path.arcTo(oval, 270, 90); } else { path.lineTo(aWidth - aPaddingRight, aPaddingTop); } /** ????? */ if (isRound3) { path.lineTo(aWidth - aPaddingRight, aHeight - aPaddingBottom - aCornerSize); oval = new RectF(aWidth - aPaddingRight - aCornerSize * 2, aHeight - aPaddingBottom - aCornerSize * 2, aWidth - aPaddingRight, aHeight - aPaddingBottom); path.arcTo(oval, 0, 90); } else { path.lineTo(aWidth - aPaddingRight, aHeight - aPaddingBottom); } /** ??? */ if (isRound4) { path.lineTo(aPaddingLeft + aCornerSize, aHeight - aPaddingBottom); oval = new RectF(aPaddingLeft, aHeight - aPaddingBottom - aCornerSize * 2, aPaddingLeft + aCornerSize * 2, aHeight - aPaddingBottom); path.arcTo(oval, 90, 90); } else { path.lineTo(aPaddingLeft, aHeight - aPaddingBottom); } /** ??? */ path.close(); return path; } }