public static void setBackground(View v, Bitmap bm) {
if (bm == null) {
v.setBackgroundResource(0);
return;
}
int vwidth = v.getWidth()/4;
int vheight = v.getHeight()/4;
int bwidth = bm.getWidth();
int bheight = bm.getHeight();
float scalex = (float) vwidth / bwidth;
float scaley = (float) vheight / bheight;
float scale = Math.max(scalex, scaley) * 1.3f;
Bitmap.Config config = Bitmap.Config.ARGB_8888;
Bitmap bg = Bitmap.createBitmap(vwidth, vheight, config);
Canvas c = new Canvas(bg);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
ColorMatrix greymatrix = new ColorMatrix();
greymatrix.setSaturation(0);
ColorMatrix darkmatrix = new ColorMatrix();
darkmatrix.setScale(1f, 1f, 1f, .1f);
greymatrix.postConcat(darkmatrix);
ColorFilter filter = new ColorMatrixColorFilter(greymatrix);
paint.setColorFilter(filter);
Matrix matrix = new Matrix();
matrix.setTranslate(-bwidth/2, -bheight/2); // move bitmap center to origin
matrix.postRotate(10);
matrix.postScale(scale, scale);
matrix.postTranslate(vwidth/2, vheight/2); // Move bitmap center to view center
c.drawBitmap(bm, matrix, paint);
v.setBackgroundDrawable(new BitmapDrawable(bg));
}
java类android.graphics.ColorMatrix的实例源码
Utils.java 文件源码
项目:aos-MediaLib
阅读 37
收藏 0
点赞 0
评论 0
DragView.java 文件源码
项目:SimpleUILauncher
阅读 30
收藏 0
点赞 0
评论 0
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void animateFilterTo(float[] targetFilter) {
float[] oldFilter = mCurrentFilter == null ? new ColorMatrix().getArray() : mCurrentFilter;
mCurrentFilter = Arrays.copyOf(oldFilter, oldFilter.length);
if (mFilterAnimator != null) {
mFilterAnimator.cancel();
}
mFilterAnimator = ValueAnimator.ofObject(new FloatArrayEvaluator(mCurrentFilter),
oldFilter, targetFilter);
mFilterAnimator.setDuration(COLOR_CHANGE_DURATION);
mFilterAnimator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
mPaint.setColorFilter(new ColorMatrixColorFilter(mCurrentFilter));
invalidate();
}
});
mFilterAnimator.start();
}
GrayscaleTransformation.java 文件源码
项目:Picasso-transformations
阅读 26
收藏 0
点赞 0
评论 0
@Override public Bitmap transform(Bitmap source) {
int width = source.getWidth();
int height = source.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
ColorMatrix saturation = new ColorMatrix();
saturation.setSaturation(0f);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(saturation));
canvas.drawBitmap(source, 0, 0, paint);
source.recycle();
return bitmap;
}
ResUtil.java 文件源码
项目:RLibrary
阅读 29
收藏 0
点赞 0
评论 0
/**
* 设置View的灰度
*/
public static void setGreyscale(View v, boolean greyscale) {
if (greyscale) {
// Create a paint object with 0 saturation (black and white)
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
Paint greyscalePaint = new Paint();
greyscalePaint.setColorFilter(new ColorMatrixColorFilter(cm));
// Create a hardware layer with the greyscale paint
v.setLayerType(LAYER_TYPE_HARDWARE, greyscalePaint);
} else {
// Remove the hardware layer
v.setLayerType(LAYER_TYPE_NONE, null);
}
}
CommonUtil.java 文件源码
项目:ktball
阅读 40
收藏 0
点赞 0
评论 0
/**
* 设置Selector。 本次只增加点击变暗的效果,注释的代码为更多的效果
*/
public static StateListDrawable createSLD(Context context, Drawable drawable) {
StateListDrawable bg = new StateListDrawable();
int brightness = 50 - 127;
ColorMatrix cMatrix = new ColorMatrix();
cMatrix.set(new float[]{1, 0, 0, 0, brightness, 0, 1, 0, 0,
brightness,// 改变亮度
0, 0, 1, 0, brightness, 0, 0, 0, 1, 0});
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(cMatrix));
Drawable normal = drawable;
Drawable pressed = createDrawable(drawable, paint);
bg.addState(new int[]{android.R.attr.state_pressed,}, pressed);
bg.addState(new int[]{android.R.attr.state_focused,}, pressed);
bg.addState(new int[]{android.R.attr.state_selected}, pressed);
bg.addState(new int[]{}, normal);
return bg;
}
SelectSceneActivity.java 文件源码
项目:flappy
阅读 26
收藏 0
点赞 0
评论 0
private Bitmap updateSaturation(Bitmap src, float settingSat) {
int w = src.getWidth();
int h = src.getHeight();
Bitmap bitmapResult =
Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvasResult = new Canvas(bitmapResult);
Paint paint = new Paint();
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(settingSat);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(filter);
canvasResult.drawBitmap(src, 0, 0, paint);
return bitmapResult;
}
PrintHelperKitkat.java 文件源码
项目:permissionsModule
阅读 28
收藏 0
点赞 0
评论 0
private Bitmap convertBitmapForColorMode(Bitmap original, int colorMode) {
if (colorMode != COLOR_MODE_MONOCHROME) {
return original;
}
// Create a grayscale bitmap
Bitmap grayscale = Bitmap.createBitmap(original.getWidth(), original.getHeight(),
Config.ARGB_8888);
Canvas c = new Canvas(grayscale);
Paint p = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
p.setColorFilter(f);
c.drawBitmap(original, 0, 0, p);
c.setBitmap(null);
return grayscale;
}
BitmapUtil.java 文件源码
项目:Android-Yet-Another-Refresh
阅读 34
收藏 0
点赞 0
评论 0
public static Bitmap changeBitmapContrastBrightness(Bitmap bmp, float contrast, float brightness)
{
ColorMatrix cm = new ColorMatrix(new float[]
{
contrast, 0, 0, 0, brightness,
0, contrast, 0, 0, brightness,
0, 0, contrast, 0, brightness,
0, 0, 0, 1, 0
});
Bitmap ret = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), bmp.getConfig());
Canvas canvas = new Canvas(ret);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(cm));
canvas.drawBitmap(bmp, 0, 0, paint);
return ret;
}
BitmapUtils.java 文件源码
项目:devbricks
阅读 37
收藏 0
点赞 0
评论 0
public static Bitmap createColorFilteredBitmap(Bitmap origBitmap,
ColorMatrix cm) {
if (origBitmap == null || cm == null) {
return origBitmap;
}
final int width = origBitmap.getWidth();
final int height = origBitmap.getHeight();
if (width <= 0 || height <= 0) {
return origBitmap;
}
Bitmap filteredBitmap = Bitmap.createBitmap(width,
height, Config.ARGB_8888);
Canvas c = new Canvas(filteredBitmap);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
Paint paint = new Paint();
paint.setColorFilter(f);
c.drawBitmap(origBitmap, 0, 0, paint);
return filteredBitmap;
}
AptoideUtils.java 文件源码
项目:aptoide-client
阅读 35
收藏 0
点赞 0
评论 0
/**
* Sets a color to a Drawable
*
* @param drawable
* @param color
*/
public static void setDrawableColor(Drawable drawable, int color) {
// Assuming "color" is your target color
float r = Color.red(color) / 255f;
float g = Color.green(color) / 255f;
float b = Color.blue(color) / 255f;
float a = Color.alpha(color) / 255f;
ColorMatrix cm = new ColorMatrix(new float[]{
r, r, r, r, r, //red
g, g, g, g, g, //green
b, b, b, b, b, //blue
1, 1, 1, 1, 1 //alpha
});
ColorMatrixColorFilter cf = new ColorMatrixColorFilter(cm);
drawable.setColorFilter(cf);
}