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
posted @ 2012-05-03 10:23  狂热与执着  阅读(2669)  评论(0编辑  收藏  举报