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