public abstract class RoundedBitmapDrawable
extends Drawable
java.lang.Object | ||
↳ | android.graphics.drawable.Drawable | |
↳ | android.support.v4.graphics.drawable.RoundedBitmapDrawable |
一个可绘制的位图,可以绘制圆角。 您可以从文件路径,输入流或Bitmap
对象创建Bitmap
。
另请参见 Bitmap
类,该类处理原始位图图形的管理和转换,并应在绘制到 Canvas
。
Public methods |
|
---|---|
void |
draw(Canvas canvas) 在其边界(通过setBounds设置)中绘制,考虑可选效果,如alpha(通过setAlpha设置)和color filter(通过setColorFilter设置)。 |
int |
getAlpha() 获取drawable的当前alpha值。 |
final Bitmap |
getBitmap() 返回此drawable用于渲染的位图。 |
ColorFilter |
getColorFilter() 返回当前的颜色过滤器,如果没有设置,则返回 |
float |
getCornerRadius() |
int |
getGravity() 获取用于在其边界内定位/拉伸位图的重力。 |
int |
getIntrinsicHeight() 返回drawable的内在高度。 |
int |
getIntrinsicWidth() 返回drawable的内部宽度。 |
int |
getOpacity() 返回此Drawable的不透明度/透明度。 |
final Paint |
getPaint() 返回用于呈现此drawable的paint。 |
boolean |
hasAntiAlias() 指示是否为此可绘制启用消除锯齿。 |
boolean |
hasMipMap() 指示是否在此drawable的位图上启用mipmap提示。 |
boolean |
isCircular() |
void |
setAlpha(int alpha) 为drawable指定一个alpha值。 |
void |
setAntiAlias(boolean aa) 为该drawable启用或禁用消除锯齿。 |
void |
setCircular(boolean circular) 将图像形状设置为圆形。 |
void |
setColorFilter(ColorFilter cf) 为绘图指定一个可选的颜色过滤器。 |
void |
setCornerRadius(float cornerRadius) 设置绘制位图时要应用的圆角半径。 |
void |
setDither(boolean dither) 此方法已弃用。 该属性被忽略。 |
void |
setFilterBitmap(boolean filter) 设置为true时,在缩放或旋转时使可绘制滤镜具有双线性采样的位图。 |
void |
setGravity(int gravity) 设置用于在其边界内放置/拉伸位图的重力。 |
void |
setMipMap(boolean mipMap) 启用或禁用此可绘制位图的mipmap提示。 |
void |
setTargetDensity(DisplayMetrics metrics) 设置将绘制该drawable的密度刻度。 |
void |
setTargetDensity(Canvas canvas) 设置将绘制该drawable的密度刻度。 |
void |
setTargetDensity(int density) 设置该drawable将被渲染的密度。 |
Protected methods |
|
---|---|
void |
onBoundsChange(Rect bounds) 如果您根据边界而变化,请在您的子类中覆盖此内容以更改外观。 |
Inherited methods |
|
---|---|
From class android.graphics.drawable.Drawable
|
|
From class java.lang.Object
|
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 |
ColorFilter getColorFilter ()
返回当前的颜色过滤器,如果没有设置,则返回 null
。
Returns | |
---|---|
ColorFilter |
the current color filter, or null if none set |
float getCornerRadius ()
Returns | |
---|---|
float |
The corner radius applied when drawing the bitmap. |
int getGravity ()
获取用于在其边界内定位/拉伸位图的重力。
Returns | |
---|---|
int |
the gravity applied to the bitmap |
也可以看看:
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. |
boolean hasAntiAlias ()
指示是否为此可绘制启用消除锯齿。
Returns | |
---|---|
boolean |
True if anti-aliasing is enabled, false otherwise. |
也可以看看:
boolean hasMipMap ()
指示是否在此drawable的位图上启用mipmap提示。
Returns | |
---|---|
boolean |
True if the mipmap hint is set, false otherwise. If the bitmap is null, this method always returns false. |
也可以看看:
boolean isCircular ()
Returns | |
---|---|
boolean |
true if the image is circular, else false . |
void setAlpha (int alpha)
为drawable指定一个alpha值。 0表示完全透明,255表示完全不透明。
Parameters | |
---|---|
alpha |
int
|
void setAntiAlias (boolean aa)
为该drawable启用或禁用消除锯齿。 消除锯齿仅影响位图的边缘,所以仅在绘制旋转时才适用。
Parameters | |
---|---|
aa |
boolean : True if the bitmap should be anti-aliased, false otherwise. |
也可以看看:
void setCircular (boolean circular)
将图像形状设置为圆形。
这会覆盖到目前为止对 setCornerRadius(float)
所做的任何呼叫。
Parameters | |
---|---|
circular |
boolean
|
void setColorFilter (ColorFilter cf)
为绘图指定一个可选的颜色过滤器。
如果Drawable具有ColorFilter,则Drawable的绘图内容的每个输出像素在混合到Canvas的渲染目标之前将被颜色过滤器修改。
通过 null
删除任何现有的颜色过滤器。
注意:设置非 null
彩色滤镜会禁用 tint
。
Parameters | |
---|---|
cf |
ColorFilter : The color filter to apply, or null to remove the existing color filter |
void setCornerRadius (float cornerRadius)
设置绘制位图时要应用的圆角半径。
Parameters | |
---|---|
cornerRadius |
float
|
void setDither (boolean dither)
此方法已弃用。
该属性被忽略。
将其设置为true时,绘制到每个颜色分量少于8位的设备时,其可绘制的颜色呈现抖动。
Parameters | |
---|---|
dither |
boolean
|
void setFilterBitmap (boolean filter)
设置为true时,在缩放或旋转时使可绘制滤镜具有双线性采样的位图。
当位图旋转时,这可以改善外观。 如果drawable不使用位图,则该调用将被忽略。
Parameters | |
---|---|
filter |
boolean
|
void setGravity (int gravity)
设置用于在其边界内放置/拉伸位图的重力。
Parameters | |
---|---|
gravity |
int : the gravity |
也可以看看:
void setMipMap (boolean mipMap)
启用或禁用此可绘制位图的mipmap提示。 有关更多信息,请参阅setHasMipMap(boolean)
。 如果位图为空,或者当前API版本不支持设置mipmap提示,则调用此方法不起作用。
Parameters | |
---|---|
mipMap |
boolean : True if the bitmap should use mipmaps, false otherwise. |
也可以看看:
void setTargetDensity (DisplayMetrics metrics)
设置将绘制该drawable的密度刻度。
Parameters | |
---|---|
metrics |
DisplayMetrics : The DisplayMetrics indicating the density scale for this drawable. |
也可以看看:
void setTargetDensity (Canvas canvas)
设置将绘制该drawable的密度刻度。 该方法假定drawable将以与指定画布相同的密度呈现。
Parameters | |
---|---|
canvas |
Canvas : The Canvas from which the density scale must be obtained. |
也可以看看:
void setTargetDensity (int density)
设置该drawable将被渲染的密度。
Parameters | |
---|---|
density |
int : The density scale for this drawable. |
也可以看看:
void onBoundsChange (Rect bounds)
如果您根据边界而变化,请在您的子类中覆盖此内容以更改外观。
Parameters | |
---|---|
bounds |
Rect
|