public final class DrawableUtils
extends java.lang.Object
| Modifier and Type | Method and Description |
|---|---|
static android.graphics.drawable.Drawable |
bitmap2Drawable(android.graphics.Bitmap bitmap)
Bitmap to drawable.
|
static android.graphics.Bitmap |
createBitmapFromView(android.view.View view) |
static android.graphics.Bitmap |
createBitmapFromView(android.view.View view,
float scale)
从一个view创建Bitmap。
注意点:绘制之前要清掉 View 的焦点,因为焦点可能会改变一个 View 的 UI 状态。
来源:https://github.com/tyrantgit/ExplosionField
|
static android.graphics.Bitmap |
createBitmapFromView(android.view.View view,
int leftCrop,
int topCrop,
int rightCrop,
int bottomCrop)
从一个view创建Bitmap。把view的区域截掉leftCrop/topCrop/rightCrop/bottomCrop
|
static android.graphics.Bitmap |
createBitmapFromWebView(android.webkit.WebView view) |
static android.graphics.Bitmap |
createBitmapFromWebView(android.webkit.WebView view,
float scale) |
static android.graphics.Bitmap |
createBitmapSafely(android.graphics.Bitmap source,
int x,
int y,
int width,
int height,
int retryCount)
安全的创建bitmap。
如果新建 Bitmap 时产生了 OOM,可以主动进行一次 GC - System.gc(),然后再次尝试创建。
|
static android.graphics.Bitmap |
createBitmapSafely(int width,
int height,
android.graphics.Bitmap.Config config,
int retryCount)
安全的创建bitmap。
如果新建 Bitmap 时产生了 OOM,可以主动进行一次 GC - System.gc(),然后再次尝试创建。
|
static android.graphics.drawable.BitmapDrawable |
createCircleDrawableWithText(android.content.res.Resources resources,
int size,
int filledColor,
java.lang.String text,
float textSize,
int textColor)
创建一张指定大小的圆形图片,并附带文字
|
static android.graphics.drawable.GradientDrawable |
createCircleGradientDrawable(int startColor,
int endColor,
int radius,
float centerX,
float centerY)
创建一张渐变图片,支持韵脚。
|
static android.graphics.drawable.BitmapDrawable |
createDrawableWithSize(android.content.res.Resources resources,
int width,
int height,
int cornerRadius,
int filledColor)
创建一张指定大小的纯色图片,支持圆角
|
static android.graphics.drawable.LayerDrawable |
createItemSeparatorBg(int separatorColor,
int bgColor,
int separatorHeight,
boolean top)
动态创建带上分隔线或下分隔线的Drawable。
|
static android.graphics.Bitmap |
drawable2Bitmap(android.graphics.drawable.Drawable drawable)
Drawable to bitmap.
|
static float |
getBaselineDistance(android.graphics.Paint paint)
获取画笔的基线距离
|
static android.graphics.Bitmap |
getBitmapByDrawableId(android.content.Context context,
int resId)
获取图片
|
static android.graphics.drawable.StateListDrawable |
getDrawable(int cornerRadius)
实体 得到随机色 状态选择器
|
static android.graphics.drawable.StateListDrawable |
getDrawable(int cornerRadius,
int normalColor)
实体 按下的颜色加深
|
static android.graphics.drawable.StateListDrawable |
getDrawable(int cornerRadius,
int pressedColor,
int normalColor)
实体 状态选择器
|
static android.graphics.drawable.GradientDrawable |
getSolidRectDrawable(int cornerRadius,
int solidColor)
得到实心的drawable, 一般作为选中,点中的效果
|
static android.graphics.drawable.StateListDrawable |
getStateListDrawable(android.graphics.drawable.Drawable pressedDrawable,
android.graphics.drawable.Drawable normalDrawable)
背景选择器
|
static android.graphics.drawable.Drawable |
getSupportRTLDrawable(android.content.Context context,
android.graphics.drawable.Drawable src)
获取支持RTL布局的drawable【如果是RTL布局就旋转180度】
|
static android.graphics.drawable.Drawable |
getSupportRTLDrawable(android.content.Context context,
android.graphics.drawable.Drawable src,
boolean recycle)
获取支持RTL布局的drawable【如果是RTL布局就旋转180度】
|
static android.graphics.drawable.Drawable |
getVectorDrawable(android.content.Context context,
int resVector) |
static android.graphics.Bitmap |
rotate(android.graphics.Bitmap src,
int degrees,
float px,
float py,
boolean recycle)
Return the rotated bitmap.
|
static android.graphics.drawable.Drawable |
rotate(android.graphics.drawable.Drawable src,
int degrees,
float px,
float py,
boolean recycle)
Return the rotated drawable.
|
static android.graphics.ColorFilter |
setDrawableTintColor(android.graphics.drawable.Drawable drawable,
int tintColor)
设置Drawable的颜色
这里不对Drawable进行mutate(),会影响到所有用到这个Drawable的地方,如果要避免,请先自行mutate()
|
static android.graphics.drawable.Drawable |
setTint(android.graphics.drawable.Drawable drawable,
int tint)
给drawable上色
|
static android.graphics.drawable.Drawable |
setTintList(android.graphics.drawable.Drawable drawable,
android.content.res.ColorStateList tint)
给drawable上色
|
static android.graphics.Bitmap |
vectorDrawableToBitmap(android.content.Context context,
int resVector) |
public static android.graphics.Bitmap createBitmapFromView(android.view.View view,
float scale)
view - 传入一个 View,会获取这个 View 的内容创建 Bitmap。scale - 缩放比例,对创建的 Bitmap 进行缩放,数值支持从 0 到 1。public static android.graphics.Bitmap createBitmapFromWebView(android.webkit.WebView view)
public static android.graphics.Bitmap createBitmapFromWebView(android.webkit.WebView view,
float scale)
public static android.graphics.Bitmap createBitmapFromView(android.view.View view)
public static android.graphics.Bitmap createBitmapFromView(android.view.View view,
int leftCrop,
int topCrop,
int rightCrop,
int bottomCrop)
public static android.graphics.Bitmap createBitmapSafely(int width,
int height,
android.graphics.Bitmap.Config config,
int retryCount)
width - Bitmap 宽度。height - Bitmap 高度。config - 传入一个 Bitmap.Config。retryCount - 创建 Bitmap 时产生 OOM 后,主动重试的次数。public static android.graphics.Bitmap createBitmapSafely(android.graphics.Bitmap source,
int x,
int y,
int width,
int height,
int retryCount)
source - 原图片x - 源中第一个像素的x坐标y - 源中第一个像素的y坐标width - 一行像素点的数量height - 行数retryCount - 创建 Bitmap 时产生 OOM 后,主动重试的次数。public static android.graphics.drawable.BitmapDrawable createDrawableWithSize(android.content.res.Resources resources,
int width,
int height,
int cornerRadius,
int filledColor)
resources - Resources对象,用于创建BitmapDrawablewidth - 图片的宽度height - 图片的高度cornerRadius - 图片的圆角,不需要则传0filledColor - 图片的填充色public static android.graphics.ColorFilter setDrawableTintColor(android.graphics.drawable.Drawable drawable,
int tintColor)
public static android.graphics.drawable.GradientDrawable createCircleGradientDrawable(int startColor,
int endColor,
int radius,
float centerX,
float centerY)
startColor - 渐变开始色endColor - 渐变结束色radius - 圆角大小centerX - 渐变中心点 X 轴坐标centerY - 渐变中心点 Y 轴坐标public static android.graphics.drawable.LayerDrawable createItemSeparatorBg(int separatorColor,
int bgColor,
int separatorHeight,
boolean top)
separatorColor - 分割线颜色。bgColor - Drawable 的背景色。top - true 则分割线为上分割线,false 则为下分割线。public static android.graphics.drawable.BitmapDrawable createCircleDrawableWithText(android.content.res.Resources resources,
int size,
int filledColor,
java.lang.String text,
float textSize,
int textColor)
resources - Resources对象,用于创建BitmapDrawablesize - 图片的宽度filledColor - 图片的填充色text - 文字textSize - 文字大小(px)textColor - 文字颜色public static float getBaselineDistance(android.graphics.Paint paint)
paint - 画笔public static android.graphics.drawable.StateListDrawable getDrawable(int cornerRadius)
cornerRadius - 圆角半径public static android.graphics.drawable.StateListDrawable getDrawable(int cornerRadius,
int normalColor)
cornerRadius - 圆角半径normalColor - 正常的颜色public static android.graphics.drawable.StateListDrawable getDrawable(int cornerRadius,
int pressedColor,
int normalColor)
cornerRadius - 圆角半径pressedColor - 按下颜色normalColor - 正常的颜色public static android.graphics.drawable.StateListDrawable getStateListDrawable(android.graphics.drawable.Drawable pressedDrawable,
android.graphics.drawable.Drawable normalDrawable)
pressedDrawable - 按下状态的DrawablenormalDrawable - 正常状态的Drawablepublic static android.graphics.drawable.GradientDrawable getSolidRectDrawable(int cornerRadius,
int solidColor)
cornerRadius - 圆角半径solidColor - 实心颜色public static android.graphics.drawable.Drawable setTint(android.graphics.drawable.Drawable drawable,
int tint)
drawable - 图像tint - 颜色public static android.graphics.drawable.Drawable setTintList(android.graphics.drawable.Drawable drawable,
android.content.res.ColorStateList tint)
drawable - 图像tint - 颜色public static android.graphics.drawable.Drawable getVectorDrawable(android.content.Context context,
int resVector)
public static android.graphics.Bitmap vectorDrawableToBitmap(android.content.Context context,
int resVector)
public static android.graphics.drawable.Drawable getSupportRTLDrawable(android.content.Context context,
android.graphics.drawable.Drawable src)
src - 原drawablepublic static android.graphics.drawable.Drawable getSupportRTLDrawable(android.content.Context context,
android.graphics.drawable.Drawable src,
boolean recycle)
context - src - 原drawablepublic static android.graphics.drawable.Drawable rotate(android.graphics.drawable.Drawable src,
int degrees,
float px,
float py,
boolean recycle)
src - The source of drawable.degrees - The number of degrees.px - The x coordinate of the pivot point.py - The y coordinate of the pivot point.recycle - True to recycle the source of drawable, false otherwise.public static android.graphics.Bitmap rotate(android.graphics.Bitmap src,
int degrees,
float px,
float py,
boolean recycle)
src - The source of bitmap.degrees - The number of degrees.px - The x coordinate of the pivot point.py - The y coordinate of the pivot point.recycle - True to recycle the source of bitmap, false otherwise.public static android.graphics.Bitmap getBitmapByDrawableId(android.content.Context context,
int resId)
context - 上下文resId - 图片资源public static android.graphics.Bitmap drawable2Bitmap(android.graphics.drawable.Drawable drawable)
drawable - The drawable.public static android.graphics.drawable.Drawable bitmap2Drawable(android.graphics.Bitmap bitmap)
bitmap - The bitmap.