public class GradientDrawable
extends Drawable
java.lang.Object | ||
↳ | android.graphics.drawable.Drawable | |
↳ | android.graphics.drawable.GradientDrawable |
带按钮,背景等颜色渐变的Drawable
它可以使用<shape>
元素在XML文件中定义。 有关更多信息,请参阅Drawable Resources的指南。
Nested classes |
|
---|---|
枚举 |
GradientDrawable.Orientation 控制渐变相对于可绘制边界的方向 |
XML attributes |
|
---|---|
android:angle |
Angle of the gradient. |
android:bottom |
Amount of bottom padding inside the gradient shape. |
android:centerColor |
Optional center color. |
android:centerX |
X coordinate of the origin of the gradient within the shape. |
android:centerY |
Y coordinate of the origin of the gradient within the shape. |
android:color |
Solid color for the gradient shape. |
android:color |
Color of the gradient shape's stroke. |
android:dashGap |
Gap between dashes in the stroke. |
android:dashWidth |
Length of a dash in the stroke. |
android:endColor |
End color of the gradient. |
android:gradientRadius |
Radius of the gradient, used only with radial gradient. |
android:height |
Height of the gradient shape. |
android:innerRadius |
Inner radius of the ring. |
android:innerRadiusRatio |
Inner radius of the ring expressed as a ratio of the ring's width. |
android:left |
Amount of left padding inside the gradient shape. |
android:right |
Amount of right padding inside the gradient shape. |
android:shape |
Indicates what shape to fill with a gradient. |
android:startColor |
Start color of the gradient. |
android:thickness |
Thickness of the ring. |
android:thicknessRatio |
Thickness of the ring expressed as a ratio of the ring's width. |
android:top |
Amount of top padding inside the gradient shape. |
android:type |
Type of gradient. |
android:useLevel |
|
android:useLevel |
Indicates whether the drawable's level affects the way the gradient is drawn. |
android:visible |
Indicates whether the drawable should intially be visible. |
android:width |
Width of the gradient shape. |
android:width |
Width of the gradient shape's stroke. |
Constants |
|
---|---|
int |
LINE 形状是一条线 |
int |
LINEAR_GRADIENT 渐变是线性的(默认)。 |
int |
OVAL 形状是一个椭圆 |
int |
RADIAL_GRADIENT 渐变是圆形的。 |
int |
RECTANGLE 形状是一个矩形,可能带有圆角 |
int |
RING 形状是一个环。 |
int |
SWEEP_GRADIENT 渐变是一种扫除。 |
Public constructors |
|
---|---|
GradientDrawable() |
|
GradientDrawable(GradientDrawable.Orientation orientation, int[] colors) 给定渐变的方向和颜色数组,创建一个新的渐变可绘制。 |
Public methods |
|
---|---|
void |
applyTheme(Resources.Theme t) 将指定的主题应用于此Drawable及其子项。 |
boolean |
canApplyTheme() |
void |
draw(Canvas canvas) 在其边界(通过setBounds设置)中绘制,考虑可选效果,如alpha(通过setAlpha设置)和color filter(通过setColorFilter设置)。 |
int |
getAlpha() 获取drawable的当前alpha值。 |
int |
getChangingConfigurations() 返回此drawable可能更改的配置参数的掩码,要求重新创建它。 |
ColorStateList |
getColor() 返回用于填充形状的颜色状态列表,或者 |
ColorFilter |
getColorFilter() 返回当前的颜色过滤器,如果没有设置则返回 |
int[] |
getColors() 返回用于绘制渐变的颜色,如果使用单一颜色或无颜色绘制渐变,则返回 |
Drawable.ConstantState |
getConstantState() 返回保存此Drawable的共享状态的 |
float[] |
getCornerRadii() 返回四个角的每一个的半径。 |
float |
getCornerRadius() 返回渐变角的半径。 |
float |
getGradientCenterX() 以像素为单位返回此渐变的中心X位置。 |
float |
getGradientCenterY() 以像素为单位返回此渐变的中心Y位置。 |
float |
getGradientRadius() 以像素为单位返回渐变的半径。 |
int |
getGradientType() 返回此提拉中使用梯度的类型的一个 |
int |
getIntrinsicHeight() 返回drawable的内在高度。 |
int |
getIntrinsicWidth() 返回drawable的内部宽度。 |
int |
getOpacity() 返回此Drawable的不透明度/透明度。 |
GradientDrawable.Orientation |
getOrientation() 返回此drawable中定义的渐变的方向。 |
void |
getOutline(Outline outline) 调用drawable来填充定义其绘图区域的Outline。 |
boolean |
getPadding(Rect padding) 返回填充此Drawable建议的插入内容以将内容放入drawable的边界内。 |
int |
getShape() |
boolean |
getUseLevel() 返回此drawable是否将 |
void |
inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Resources.Theme theme) 从可选的由主题设计的XML资源中扩展此Drawable。 |
boolean |
isStateful() 指示此drawable是否会根据状态更改其外观。 |
Drawable |
mutate() 使这个drawable可变。 |
void |
setAlpha(int alpha) 为drawable指定一个alpha值。 |
void |
setColor(ColorStateList colorStateList) 将此drawable更改为使用单个颜色状态列表而不是渐变。 |
void |
setColor(int argb) 将此可绘制更改为使用单一颜色而不是渐变。 |
void |
setColorFilter(ColorFilter colorFilter) 为绘图指定一个可选的颜色过滤器。 |
void |
setColors(int[] colors) 设置用于绘制渐变的颜色。 |
void |
setCornerRadii(float[] radii) 指定四个角的每一个的半径。 |
void |
setCornerRadius(float radius) 指定渐变角的半径。 |
void |
setDither(boolean dither) 此方法已弃用。 该属性被忽略。 |
void |
setGradientCenter(float x, float y) 设置渐变的像素中心位置。 |
void |
setGradientRadius(float gradientRadius) 设置渐变的半径。 |
void |
setGradientType(int gradient) 设置此drawable使用的渐变类型。 |
void |
setOrientation(GradientDrawable.Orientation orientation) 设置此drawable中定义的渐变的方向。 |
void |
setShape(int shape) 设置用于绘制渐变的形状的类型。 |
void |
setSize(int width, int height) 设置由该drawable绘制的形状的大小。 |
void |
setStroke(int width, ColorStateList colorStateList) 设置绘图的笔触宽度和颜色状态列表。 |
void |
setStroke(int width, ColorStateList colorStateList, float dashWidth, float dashGap) 设置绘图的笔触宽度和颜色状态列表。 |
void |
setStroke(int width, int color, float dashWidth, float dashGap) 设置绘图的笔触宽度和颜色。 |
void |
setStroke(int width, int color) 设置绘图的笔触宽度和颜色。 |
void |
setTintList(ColorStateList tint) 指定该drawable的色彩颜色作为颜色状态列表。 |
void |
setTintMode(PorterDuff.Mode tintMode) 指定该drawable的色调混合模式。 |
void |
setUseLevel(boolean useLevel) 设置这个drawable是否会遵守它的 |
Protected methods |
|
---|---|
void |
onBoundsChange(Rect r) 如果您根据边界而变化,请在您的子类中覆盖此内容以更改外观。 |
boolean |
onLevelChange(int level) 如果您根据级别而变化,请在您的子类中覆盖此内容以更改外观。 |
boolean |
onStateChange(int[] stateSet) 如果您认识到指定的状态,请在您的子类中覆盖此内容以更改外观。 |
Inherited methods |
|
---|---|
From class android.graphics.drawable.Drawable
|
|
From class java.lang.Object
|
渐变的角度。
必须是浮点值,例如“ 1.2
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 angle
。
梯度形状内的底部填充量。
必须是维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 bottom
。
可选的中心颜色。 对于线性渐变,请使用centerX或centerY来放置中心颜色。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 centerColor
。
形状内渐变原点的X坐标。
可能是浮点值,例如“ 1.2
”。
可能是一个小数值,它是一个浮点数, 14.5%
%或%p,例如“ 14.5%
”。 %后缀始终表示基本大小的百分比; 可选的%p后缀提供了相对于某个父容器的大小。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 centerX
。
形状内渐变的原点的Y坐标。
可能是浮点值,如“ 1.2
”。
可能是一个小数值,这是一个浮点数,后面跟着%或%p,例如“ 14.5%
”。 %后缀始终表示基本大小的百分比; 可选的%p后缀提供了相对于某个父容器的大小。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 centerY
。
纯色为渐变形状。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 color
。
渐变形状笔触的颜色。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 color
。
中风破折号之间的差距。
必须是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 dashGap
。
中风中的短划线的长度。
必须是维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 dashWidth
。
渐变的结束颜色。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 endColor
。
渐变的半径,仅用于径向渐变。
可能是浮点值,例如“ 1.2
”。
可能是一个维度值,它是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
可能是一个小数值,这是一个浮点数, 14.5%
%或%p,例如“ 14.5%
”。 %后缀始终表示基本大小的百分比; 可选的%p后缀提供了相对于某个父容器的大小。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 gradientRadius
。
渐变形状的高度。
必须是维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 height
。
环的内半径。 定义后,innerRadiusRatio将被忽略。
必须是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 innerRadius
。
环的内半径表示为环宽度的比率。 例如,如果innerRadiusRatio = 9,则内半径等于环的宽度除以9.如果定义了innerRadius,则该值将被忽略。 默认值是9。
必须是浮点值,例如“ 1.2
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 innerRadiusRatio
。
渐变形状内的左填充量。
必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 left
。
渐变形状内的右填充量。
必须是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 right
。
指示用渐变填充的形状。
必须是下列常数值之一。
Constant | Value | 描述 |
---|---|---|
rectangle |
0 | Rectangle shape, with optional rounder corners. |
oval |
1 | Oval shape. |
line |
2 | Line shape. |
ring |
3 | Ring shape. |
这对应于全局属性资源符号 shape
。
开始渐变的颜色。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 startColor
。
戒指的厚度。 定义时,thicknessRatio将被忽略。
必须是维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 thickness
。
环的厚度表示为环宽度的比率。 例如,如果thicknessRatio = 3,那么厚度等于环的宽度除以3.如果定义了innerRadius,则该值将被忽略。 默认值是3。
必须是浮点值,例如“ 1.2
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 thicknessRatio
。
渐变形状内的顶部填充量。
必须是维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 top
。
类型的渐变。 默认类型是线性的。
必须是下列常数值之一。
Constant | Value | 描述 |
---|---|---|
linear |
0 | Linear gradient. |
radial |
1 | Radial, or circular, gradient. |
sweep |
2 | Sweep, or angled or diamond, gradient. |
这对应于全局属性资源符号 type
。
指示drawable的级别是否影响绘制渐变的方式。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 useLevel
。
指示绘图是否应该可见。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 visible
。
渐变形状的宽度。
必须是维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 width
。
渐变形状笔触的宽度。
必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 width
。
GradientDrawable (GradientDrawable.Orientation orientation, int[] colors)
给定渐变的方向和颜色数组,创建一个新的渐变可绘制。
Parameters | |
---|---|
orientation |
GradientDrawable.Orientation
|
colors |
int
|
void applyTheme (Resources.Theme t)
将指定的主题应用于此Drawable及其子项。
Parameters | |
---|---|
t |
Resources.Theme : the theme to apply |
void draw (Canvas canvas)
在其边界(通过setBounds设置)中绘制,考虑可选效果,如alpha(通过setAlpha设置)和color filter(通过setColorFilter设置)。
Parameters | |
---|---|
canvas |
Canvas : The canvas to draw into |
int getAlpha ()
获取drawable的当前alpha值。 0表示完全透明,255表示完全不透明。 该方法由Drawable子类实现,返回的值特定于该类如何处理alpha。 如果该类未覆盖此方法以返回特定于其使用alpha的值,则默认返回值为255。
Returns | |
---|---|
int |
int getChangingConfigurations ()
返回此drawable可能更改的配置参数的掩码,要求重新创建它。 缺省实现返回默认情况下通过setChangingConfigurations(int)
或0提供的值。 子类可以将其扩展到它们所拥有的任何其他drawable的变化配置中或其中。
Returns | |
---|---|
int |
Returns a mask of the changing configuration parameters, as defined by ActivityInfo . |
ColorStateList getColor ()
返回用于填充形状的颜色状态列表,或者 null
如果形状填充了渐变或没有填充颜色。
Returns | |
---|---|
ColorStateList |
the color state list used to fill this gradient, or null |
ColorFilter getColorFilter ()
返回当前的颜色过滤器,如果没有设置,则返回 null
。
Returns | |
---|---|
ColorFilter |
the current color filter, or null if none set |
int[] getColors ()
返回用于绘制渐变的颜色,如果渐变使用单色或无颜色绘制,则返回 null
。
Returns | |
---|---|
int[] |
the colors used to draw the gradient, or null |
也可以看看:
Drawable.ConstantState getConstantState ()
返回保存此Drawable的共享状态的 Drawable.ConstantState
实例。
Returns | |
---|---|
Drawable.ConstantState |
The ConstantState associated to that Drawable. |
float[] getCornerRadii ()
返回四个角的每一个的半径。 对于每个角落,数组包含2个值, [X_radius, Y_radius]
。 角落的顺序是左上角,右上角,右下角,左下角。
如果以前的圆角设置为 setCornerRadius(float)
,或者如果拐角未被圆角化,则此方法将返回 null
。
Returns | |
---|---|
float[] |
an array containing the radii for each of the 4 corners, or null |
也可以看看:
float getCornerRadius ()
返回渐变角的半径。
如果之前设置了半径 setCornerRadii(float[])
,或者如果拐角未被圆整,则此方法将返回 null
。
Returns | |
---|---|
float |
the radius in pixels of the corners of the rectangle shape, or 0 |
也可以看看:
float getGradientCenterX ()
以像素为单位返回此渐变的中心X位置。
Returns | |
---|---|
float |
the center X location of this gradient in pixels |
float getGradientCenterY ()
以像素为单位返回此渐变的中心Y位置。
Returns | |
---|---|
float |
the center Y location of this gradient in pixels |
float getGradientRadius ()
以像素为单位返回渐变的半径。 仅当渐变类型设置为RADIAL_GRADIENT
时,半径才有效。
Returns | |
---|---|
float |
the radius of the gradient in pixels |
也可以看看:
int getGradientType ()
返回此提拉中使用梯度的类型的一个 LINEAR_GRADIENT
, RADIAL_GRADIENT
,或 SWEEP_GRADIENT
。
Returns | |
---|---|
int |
the type of gradient used by this drawable |
也可以看看:
int getIntrinsicHeight ()
返回drawable的内在高度。
固有高度是可拉伸的布局高度,包括任何固有的填充。 如果drawable没有固有的高度,例如纯色,则此方法返回-1。
Returns | |
---|---|
int |
the intrinsic height, or -1 if no intrinsic height |
int getIntrinsicWidth ()
返回drawable的内部宽度。
固有宽度是可展开的布局的宽度,包括任何固有的填充。 如果drawable没有固有的宽度,例如纯色,则此方法返回-1。
Returns | |
---|---|
int |
the intrinsic width, or -1 if no intrinsic width |
int getOpacity ()
返回此Drawable的不透明度/透明度。 返回的值是在抽象格式常数之一PixelFormat
: UNKNOWN
, TRANSLUCENT
, TRANSPARENT
,或OPAQUE
。
OPAQUE drawable是一个绘制所有内容的范围,完全覆盖drawable后面的所有内容。 一个TRANSPARENT drawable是一个在其范围内没有绘制任何东西的图形,允许它后面的所有东西都显示出来。 TRANSLUCENT drawable是任何其他状态中的drawable,drawable将绘制其边界内的一些内容,但不是全部内容,并且至少drawable后面的某些内容将可见。 如果无法确定可绘制内容的可见性,则最安全/最佳返回值为TRANSLUCENT。
一般而言,Drawable应该尽可能保守并且返回值。 例如,如果它包含多个子drawable,并且一次只显示其中一个,如果只有一个子项是TRANSLUCENT,而其他子项是OPAQUE,则应返回TRANSLUCENT。 您可以使用方法resolveOpacity(int, int)
将两个不透明度标准减少到适当的单个输出。
请注意,返回的值不一定会考虑客户端通过setAlpha(int)
或setColorFilter(ColorFilter)
方法应用的自定义alpha或颜色过滤器。 一些子类,比如BitmapDrawable
, ColorDrawable
,并GradientDrawable
,对价值做账setAlpha(int)
,但总的行为是依赖于子类实现的。
Returns | |
---|---|
int |
int The opacity class of the Drawable. |
GradientDrawable.Orientation getOrientation ()
返回此drawable中定义的渐变的方向。
Returns | |
---|---|
GradientDrawable.Orientation |
the orientation of the gradient defined in this drawable |
也可以看看:
void getOutline (Outline outline)
调用drawable来填充定义其绘图区域的Outline。
此方法由默认的 ViewOutlineProvider
以定义视图的轮廓。
默认行为将轮廓定义为0 alpha的边界矩形。 希望传达不同形状或阿尔法值的子类必须重写此方法。
Parameters | |
---|---|
outline |
Outline
|
boolean getPadding (Rect padding)
返回填充此Drawable建议的插入内容以将内容放入drawable的边界内。 正值移向Drawable的中心(设置Rect.inset)。
Parameters | |
---|---|
padding |
Rect
|
Returns | |
---|---|
boolean |
true if this drawable actually has a padding, else false. When false is returned, the padding is always set to 0. |
int getShape ()
返回此提拉中使用的形状的类型的一个 LINE
, OVAL
, RECTANGLE
或 RING
。
Returns | |
---|---|
int |
the type of shape used by this drawable |
也可以看看:
boolean getUseLevel ()
返回此drawable是否将 level
其 level
属性。
Returns | |
---|---|
boolean |
true if this drawable should honor its level, false otherwise |
也可以看看:
void inflate (Resources r, XmlPullParser parser, AttributeSet attrs, Resources.Theme theme)
从可选的由主题设计的XML资源中扩展此Drawable。 对于每个Drawable,这不能被调用一次以上。 请注意,框架可能已经调用过这一次从XML资源创建Drawable实例。
Parameters | |
---|---|
r |
Resources : Resources used to resolve attribute values |
parser |
XmlPullParser : XML parser from which to inflate this Drawable |
attrs |
AttributeSet : Base set of attribute values |
theme |
Resources.Theme : Theme to apply, may be null |
Throws | |
---|---|
XmlPullParserException |
|
IOException |
boolean isStateful ()
指示此drawable是否会根据状态更改其外观。 客户可以使用它来确定是否有必要计算它们的状态并调用setState。
Returns | |
---|---|
boolean |
True if this drawable changes its appearance based on state, false otherwise. |
Drawable mutate ()
使这个drawable可变。 这个操作不能逆转。 一个可变的drawable保证不与其他drawable共享它的状态。 当你需要修改从资源加载的drawable的属性时,这是特别有用的。 默认情况下,从同一资源加载的所有可绘制实例共享一个公共状态; 如果修改一个实例的状态,则所有其他实例都将收到相同的修改。 在可变Drawable上调用此方法将不起作用。
Returns | |
---|---|
Drawable |
This drawable. |
void setAlpha (int alpha)
为drawable指定一个alpha值。 0表示完全透明,255表示完全不透明。
Parameters | |
---|---|
alpha |
int
|
void setColor (ColorStateList colorStateList)
将此drawable更改为使用单个颜色状态列表而不是渐变。 调用此方法与空参数将清除颜色和等同于调用setColor(int)
的说法TRANSPARENT
。
注 :更改颜色将影响从资源加载的drawable的所有实例。 建议在更改颜色之前调用mutate()
。
Parameters | |
---|---|
colorStateList |
ColorStateList : The color state list used to fill the shape |
也可以看看:
void setColor (int argb)
将此可绘制更改为使用单一颜色而不是渐变。
注 :更改颜色将影响从资源加载的drawable的所有实例。 建议在更改颜色之前调用mutate()
。
Parameters | |
---|---|
argb |
int : The color used to fill the shape |
也可以看看:
void setColorFilter (ColorFilter colorFilter)
为绘图指定一个可选的颜色过滤器。
如果Drawable具有ColorFilter,则Drawable的绘图内容的每个输出像素在混合到Canvas的渲染目标之前将被颜色过滤器修改。
通过 null
删除任何现有的颜色过滤器。
注意:设置非 null
颜色过滤器会禁用 tint
。
Parameters | |
---|---|
colorFilter |
ColorFilter : The color filter to apply, or null to remove the existing color filter |
void setColors (int[] colors)
设置用于绘制渐变的颜色。
每种颜色都指定为ARGB整数,并且该数组必须至少包含2种颜色。
注 :更改颜色将影响从资源加载的绘图的所有实例。 建议在更改颜色之前调用mutate()
。
Parameters | |
---|---|
colors |
int : an array containing 2 or more ARGB colors |
也可以看看:
void setCornerRadii (float[] radii)
指定四个角的每一个的半径。 对于每个角落,数组包含2个值, [X_radius, Y_radius]
。 角落的顺序是左上角,右上角,右下角,左下角。 只有在形状为RECTANGLE
时,此属性才RECTANGLE
。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
radii |
float : an array of length >= 8 containing 4 pairs of X and Y radius for each corner, specified in pixels |
void setCornerRadius (float radius)
指定渐变角的半径。 如果这是> 0,那么drawable绘制在一个圆形的矩形中,而不是一个矩形。 该属性仅在形状为RECTANGLE
。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
radius |
float : The radius in pixels of the corners of the rectangle shape |
void setDither (boolean dither)
此方法已弃用。
该属性被忽略。
将其设置为true时,绘制到每个颜色分量少于8位的设备时,其可绘制的颜色呈现抖动。
Parameters | |
---|---|
dither |
boolean
|
void setGradientCenter (float x, float y)
设置渐变的像素中心位置。 只有当渐变类型设置为RADIAL_GRADIENT
或SWEEP_GRADIENT
时,半径才可以SWEEP_GRADIENT
。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
x |
float : the x coordinate of the gradient's center in pixels |
y |
float : the y coordinate of the gradient's center in pixels |
void setGradientRadius (float gradientRadius)
设置渐变的半径。 只有当渐变类型设置为RADIAL_GRADIENT
时,半径才可以RADIAL_GRADIENT
。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
gradientRadius |
float : the radius of the gradient in pixels |
void setGradientType (int gradient)
设置此drawable使用的渐变类型。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
gradient |
int : The type of the gradient: LINEAR_GRADIENT , RADIAL_GRADIENT or SWEEP_GRADIENT |
也可以看看:
void setOrientation (GradientDrawable.Orientation orientation)
设置此drawable中定义的渐变的方向。
注意 :改变方向会影响从资源加载的drawable的所有实例。 建议在更改方向前调用mutate()
。
Parameters | |
---|---|
orientation |
GradientDrawable.Orientation : the desired orientation (angle) of the gradient |
也可以看看:
void setShape (int shape)
设置用于绘制渐变的形状的类型。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
shape |
int : The desired shape for this drawable: LINE , OVAL , RECTANGLE or RING |
也可以看看:
void setSize (int width, int height)
设置由该drawable绘制的形状的大小。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
width |
int : The width of the shape used by this drawable |
height |
int : The height of the shape used by this drawable |
也可以看看:
void setStroke (int width, ColorStateList colorStateList)
设置绘图的笔触宽度和颜色状态列表。 如果宽度为零,则不绘制笔画。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
width |
int : The width in pixels of the stroke |
colorStateList |
ColorStateList : The color state list of the stroke |
void setStroke (int width, ColorStateList colorStateList, float dashWidth, float dashGap)
设置绘图的笔触宽度和颜色状态列表。 如果宽度为零,则不绘制笔画。 这种方法也可以用来冲击笔画。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
width |
int : The width in pixels of the stroke |
colorStateList |
ColorStateList : The color state list of the stroke |
dashWidth |
float : The length in pixels of the dashes, set to 0 to disable dashes |
dashGap |
float : The gap in pixels between dashes |
void setStroke (int width, int color, float dashWidth, float dashGap)
设置绘图的笔触宽度和颜色。 如果宽度为零,则不绘制笔画。 这种方法也可以用来冲击笔画。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
width |
int : The width in pixels of the stroke |
color |
int : The color of the stroke |
dashWidth |
float : The length in pixels of the dashes, set to 0 to disable dashes |
dashGap |
float : The gap in pixels between dashes |
也可以看看:
void setStroke (int width, int color)
设置绘图的笔触宽度和颜色。 如果宽度为零,则不绘制笔画。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
width |
int : The width in pixels of the stroke |
color |
int : The color of the stroke |
void setTintList (ColorStateList tint)
指定该drawable的色彩颜色作为颜色状态列表。
Drawable的绘图内容在绘制到屏幕前将与它的色调混合在一起。 这功能类似于setColorFilter(int, PorterDuff.Mode)
。
注意:通过 setColorFilter(ColorFilter)
或 setColorFilter(int, PorterDuff.Mode)
设置颜色过滤器会覆盖色调。
Parameters | |
---|---|
tint |
ColorStateList : Color state list to use for tinting this drawable, or null to clear the tint |
void setTintMode (PorterDuff.Mode tintMode)
指定该drawable的色调混合模式。
定义在绘制屏幕之前,该绘制的色调应该如何混合到绘图中。 默认色调模式是SRC_IN
。
注意:通过 setColorFilter(ColorFilter)
或 setColorFilter(int, PorterDuff.Mode)
设置颜色过滤器会覆盖色彩。
Parameters | |
---|---|
tintMode |
PorterDuff.Mode : A Porter-Duff blending mode |
void setUseLevel (boolean useLevel)
设置该drawable是否会遵守其 level
属性。
注意 :更改此属性将影响从资源加载的drawable的所有实例。 建议在更改此属性前调用mutate()
。
Parameters | |
---|---|
useLevel |
boolean : true if this drawable should honor its level, false otherwise |
void onBoundsChange (Rect r)
如果您根据边界而变化,请在您的子类中覆盖此内容以更改外观。
Parameters | |
---|---|
r |
Rect
|
boolean onLevelChange (int level)
如果您根据级别而变化,请在您的子类中覆盖此内容以更改外观。
Parameters | |
---|---|
level |
int
|
Returns | |
---|---|
boolean |
Returns true if the level change has caused the appearance of the Drawable to change (that is, it needs to be drawn), else false if it looks the same and there is no need to redraw it since its last level. |
boolean onStateChange (int[] stateSet)
如果您认识到指定的状态,请在您的子类中覆盖此内容以更改外观。
Parameters | |
---|---|
stateSet |
int
|
Returns | |
---|---|
boolean |
Returns true if the state change has caused the appearance of the Drawable to change (that is, it needs to be drawn), else false if it looks the same and there is no need to redraw it since its last state. |