package com.github.miao1007.animewallpaper.utils.picasso;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Shader;
import com.squareup.picasso.Transformation;
/**
* Created by leon on 2/2/15.
*/
class GradientTransformation implements Transformation {
//black
private final int startColor = Color.argb(240,0,0,0);
private final int endColor = Color.TRANSPARENT;
@Override public Bitmap transform(Bitmap source) {
int x = source.getWidth();
int y = source.getHeight();
Bitmap grandientBitmap = source.copy(source.getConfig(), true);
Canvas canvas = new Canvas(grandientBitmap);
//left-top == (0,0) , right-bottom == (x,y);
LinearGradient grad =
new LinearGradient(x/2, y, x/2, y/2, startColor, endColor, Shader.TileMode.CLAMP);
Paint p = new Paint(Paint.DITHER_FLAG);
p.setShader(null);
p.setDither(true);
p.setFilterBitmap(true);
p.setShader(grad);
canvas.drawPaint(p);
source.recycle();
return grandientBitmap;
}
@Override public String key() {
return "Gradient";
}
}