android 使用java编程实现圆角渐变矩形的绘制

int r=8;//圆角的半径
int color=Color.parseColor("#88aa77");
int bottom=Color.parseColor("#669966");
GradientDrawable mDrawable;
mDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[] { color,bottomColor});
mDrawable.setShape(GradientDrawable.RECTANGLE);//设置形状为矩形
mDrawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
setCornerRadii(mDrawable, r, r, r, r);//设置4角的圆角半径值
mDrawable.setBounds(mRect);//设置位置大小
mDrawable.draw(canvas);//绘制到canvas上


static void setCornerRadii(GradientDrawable drawable, float r0, float r1,
            float r2, float r3) {
        drawable.setCornerRadii(new float[] { r0, r0, r1, r1, r2, r2, r3, r3 });
    }

/**

*

* 四个圆角的顺序为左上,右上,右下,左下。如果X_Radius,Y_Radius为0表示还是直角。

* 颜色渐变的方向由GradientDrawable.Orientation定义可以有如下八种 public

* GradientDrawable(GradientDrawable.Orientation orientation, int[]

* colors)

*

* 使用Liner,Radial 和Sweep三种渐变模式

* */

更多请看:http://blog.csdn.net/a_large_swan/article/details/7107126