java类android.graphics.ColorMatrix的实例源码

Utils.java 文件源码 项目:aos-MediaLib 阅读 37 收藏 0 点赞 0 评论 0
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));
    }
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);
}


问题


面经


文章

微信
公众号

扫码关注公众号