您的位置:首页 > 移动开发 > Android开发

GradientDrawable 动态设置背景的使用

2017-03-08 14:32 225 查看
我们经常会为控件按钮等设置背景图,一般的效果都是,圆角,颜色,渐变色,阴影,或者是选中效果等。正常情况下都是通过,xml文件来静态的配置。当我们在代码中需要动态配置的时候,我们可以选用GradientDrawable这个类来实现我们的效果。支持的形状有4种:

/**
* Shape is a rectangle, possibly with rounded corners
*/矩形
public static final int RECTANGLE = 0;

/**
* Shape is an ellipse
*/圆形
public static final int OVAL = 1;

/**
* Shape is a line
*/线
public static final int LINE = 2;

/**
* Shape is a ring.
*/环形
public static final int RING = 3;


通过setShape属性来设置。

其中构造方法有两种:

public GradientDrawable() {
this(new GradientState(Orientation.TOP_BOTTOM, null), null);
}

/**
* Create a new gradient drawable given an orientation and an array
* of colors for the gradient.
*/
public GradientDrawable(Orientation orientation, @ColorInt int[] colors) {
this(new GradientState(orientation, colors), null);
}


第二种就是我们需要设置渐变色的效果,构造方法。2个参数,第一个是渐变色的方向其中是个枚举类型。可选如下:

/**
* Controls how the gradient is oriented relative to the drawable's bounds
*/
public enum Orientation {
/** draw the gradient from the top to the bottom */
TOP_BOTTOM,
/** draw the gradient from the top-right to the bottom-left */
TR_BL,
/** draw the gradient from the right to the left */
RIGHT_LEFT,
/** draw the gradient from the bottom-right to the top-left */
BR_TL,
/** draw the gradient from the bottom to the top */
BOTTOM_TOP,
/** draw the gradient from the bottom-left to the top-right */
BL_TR,
/** draw the gradient from the left to the right */
LEFT_RIGHT,
/** draw the gradient from the top-left to the bottom-right */
TL_BR,
}


有8种渐变方向可选,当然还有三种的渐变模式:

/**
* Gradient is linear (default.)
*/
public static final int LINEAR_GRADIENT = 0;

/**
* Gradient is circular.
*/
public static final int RADIAL_GRADIENT = 1;

/**
* Gradient is a sweep.
*/
public static final int SWEEP_GRADIENT  = 2;


通过setGradientType方法设置属性。

第二各参数就是渐变色数组,从头到尾的颜色有哪些。当然对于矩形,我们还可以设置圆角,通过setCornerRadii这个属性来设置,第一个是drawable对象,后面便是4个角圆角的半径了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android drawable