use of android.graphics.Shader in project incubator-weex by apache.
the class WXResourceUtils method getShader.
/**
* Assembly gradients
* @param image gradient values contains direction、colors
* @param width component width
* @param height component height
* @return gradient shader
*/
public static Shader getShader(String image, float width, float height) {
List<String> valueList = parseGradientValues(image);
if (valueList != null && valueList.size() == 3) {
float[] points = parseGradientDirection(valueList.get(0), width, height);
Shader shader = new LinearGradient(points[0], points[1], points[2], points[3], getColor(valueList.get(1), Color.WHITE), getColor(valueList.get(2), Color.WHITE), Shader.TileMode.REPEAT);
return shader;
}
return null;
}
use of android.graphics.Shader in project CameraButton by hluhovskyi.
the class CameraButton method invalidateIcons.
private void invalidateIcons() {
mIconMatrices = new Matrix[mIconShaders.length];
mIconPaints = new Paint[mIconShaders.length];
for (int i = 0; i < mIconShaders.length; i++) {
Shader shader = mIconShaders[i];
Matrix matrix = new Matrix();
shader.setLocalMatrix(matrix);
mIconMatrices[i] = matrix;
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setShader(shader);
mIconPaints[i] = paint;
}
}
use of android.graphics.Shader in project TicktockMusic by Lauzy.
the class ScrimUtil method makeCubicGradientScrimDrawable.
/**
* Creates an approximated cubic gradient using a multi-stop linear gradient. See
* <a href="https://plus.google.com/+RomanNurik/posts/2QvHVFWrHZf">this post</a> for more
* details.
*/
public static Drawable makeCubicGradientScrimDrawable(int baseColor, int numStops, int gravity) {
// Generate a cache key by hashing together the inputs, based on the method described in the Effective Java book
int cacheKeyHash = baseColor;
cacheKeyHash = 31 * cacheKeyHash + numStops;
cacheKeyHash = 31 * cacheKeyHash + gravity;
Drawable cachedGradient = cubicGradientScrimCache.get(cacheKeyHash);
if (cachedGradient != null) {
return cachedGradient;
}
numStops = Math.max(numStops, 2);
PaintDrawable paintDrawable = new PaintDrawable();
paintDrawable.setShape(new RectShape());
final int[] stopColors = new int[numStops];
int red = Color.red(baseColor);
int green = Color.green(baseColor);
int blue = Color.blue(baseColor);
int alpha = Color.alpha(baseColor);
for (int i = 0; i < numStops; i++) {
float x = i * 1f / (numStops - 1);
float opacity = MathUtil.constrain(0, 1, (float) Math.pow(x, 3));
stopColors[i] = Color.argb((int) (alpha * opacity), red, green, blue);
}
final float x0, x1, y0, y1;
switch(gravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
case Gravity.LEFT:
x0 = 1;
x1 = 0;
break;
case Gravity.RIGHT:
x0 = 0;
x1 = 1;
break;
default:
x0 = 0;
x1 = 0;
break;
}
switch(gravity & Gravity.VERTICAL_GRAVITY_MASK) {
case Gravity.TOP:
y0 = 1;
y1 = 0;
break;
case Gravity.BOTTOM:
y0 = 0;
y1 = 1;
break;
default:
y0 = 0;
y1 = 0;
break;
}
paintDrawable.setShaderFactory(new ShapeDrawable.ShaderFactory() {
@Override
public Shader resize(int width, int height) {
return new LinearGradient(width * x0, height * y0, width * x1, height * y1, stopColors, null, Shader.TileMode.CLAMP);
}
});
cubicGradientScrimCache.put(cacheKeyHash, paintDrawable);
return paintDrawable;
}
use of android.graphics.Shader in project android_packages_apps_Gallery2 by LineageOS.
the class ColorOpacityView method updatePaint.
private void updatePaint() {
int color2 = Color.HSVToColor(mHSVO);
int color1 = color2 & 0xFFFFFF;
Shader sg = new LinearGradient(mBorder, mBorder, mWidth - mBorder, mBorder, color1, color2, Shader.TileMode.CLAMP);
mBarPaint1.setShader(sg);
}
use of android.graphics.Shader in project android_packages_apps_Gallery2 by LineageOS.
the class ColorSaturationView method updatePaint.
private void updatePaint() {
float[] hsvo = Arrays.copyOf(mHSVO, 4);
hsvo[3] = 1;
hsvo[2] = 1;
hsvo[1] = 1;
int color2 = Color.HSVToColor(hsvo);
hsvo[1] = 0;
int color1 = Color.HSVToColor(hsvo);
Shader sg = new LinearGradient(mBorder, mBorder, mWidth - mBorder, mBorder, color1, color2, Shader.TileMode.CLAMP);
mBarPaint1.setShader(sg);
}
Aggregations