use of android.graphics.Shader in project Rocket by mozilla-tw.
the class HomeScreenBackground method init.
void init() {
Rect rect = new Rect();
((Activity) getContext()).getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.home_pattern);
paint = new Paint();
Shader shader1 = new BitmapShader(bitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
int[] colors = { Color.parseColor("#FFFFFFFF"), Color.parseColor("#88FFFFFF"), Color.parseColor("#55FFFFFF"), Color.parseColor("#00FFFFFF") };
float[] positions = { 0.0f, 0.4f, 0.7f, 1f };
Shader shader2 = new LinearGradient(0, rect.top, 0, rect.bottom, colors, positions, Shader.TileMode.CLAMP);
paint.setShader(new ComposeShader(shader2, shader1, PorterDuff.Mode.MULTIPLY));
}
use of android.graphics.Shader in project Osmand by osmandapp.
the class OsmandRenderer method getShader.
public Shader getShader(String resId) {
if (shaders.get(resId) == null) {
Bitmap bmp = RenderingIcons.getIcon(context, resId, true);
if (bmp != null) {
Shader sh = new BitmapShader(bmp, TileMode.REPEAT, TileMode.REPEAT);
shaders.put(resId, sh);
} else {
shaders.put(resId, null);
}
}
return shaders.get(resId);
}
use of android.graphics.Shader in project openhab-android by openhab.
the class ColorPicker method onDraw.
@Override
protected void onDraw(Canvas canvas) {
Log.d(TAG, "onDraw");
// All of our positions are using our internal coordinate system. Instead of translating
// them we let Canvas do the work for us.
canvas.translate(mTranslationOffset, mTranslationOffset);
// Draw the color wheel.
canvas.drawOval(mColorWheelRectangle, mColorWheelPaint);
updateBrightnessAndSaturation();
// Draw the brightness slider
Shader brightnessShader = new LinearGradient(mBrightnessSliderX, mBrightnessSliderStartY, mBrightnessSliderX, mBrightnessSliderEndY, mSaturationColor, Color.BLACK, TileMode.CLAMP);
mBrightnessSliderPaint.setShader(brightnessShader);
mBrightnessSliderPaint.setStyle(Paint.Style.STROKE);
mBrightnessSliderPaint.setStrokeWidth(mColorWheelStrokeWidth);
canvas.drawLine(mBrightnessSliderX, mBrightnessSliderStartY, mBrightnessSliderX, mBrightnessSliderEndY, mBrightnessSliderPaint);
// Draw the saturation slider
Shader saturationShader = new LinearGradient(mSaturationSliderX, mSaturationSliderStartY, mSaturationSliderX, mBrightnessSliderEndY, Color.WHITE, mPointerColor.getColor(), TileMode.CLAMP);
mSaturationSliderPaint.setShader(saturationShader);
mSaturationSliderPaint.setStyle(Paint.Style.STROKE);
mSaturationSliderPaint.setStrokeWidth(mColorWheelStrokeWidth);
canvas.drawLine(mSaturationSliderX, mSaturationSliderStartY, mSaturationSliderX, mSaturationSliderEndY, mSaturationSliderPaint);
float[] pointerPosition = calculatePointerPosition(mAngle);
// Draw the pointer's "halo"
canvas.drawCircle(pointerPosition[0], pointerPosition[1], mPointerRadius, mPointerHaloPaint);
// Draw the pointer (the currently selected color) slightly smaller on top.
canvas.drawCircle(pointerPosition[0], pointerPosition[1], (float) (mPointerRadius / 1.2), mPointerColor);
// Draw the brightness pointer's "halo"
canvas.drawCircle(mBrightnessSliderX, mBrightnessY, mPointerRadius, mBrightnessPointerHaloPaint);
// Draw the brightness pointer's border
canvas.drawCircle(mBrightnessSliderX, mBrightnessY, mPointerRadius - 2, mBrightnessPointerBorderPaint);
// Draw the pointer (the currently selected brightness) slightly smaller on top.
mBrightnessPointerColor.setColor(mBrightnessColor);
canvas.drawCircle(mBrightnessSliderX, mBrightnessY, (float) (mPointerRadius / 1.2), mBrightnessPointerColor);
// Draw the saturation pointer's "halo"
canvas.drawCircle(mSaturationSliderX, mSaturationY, mPointerRadius, mSaturationPointerHaloPaint);
// Draw the pointer (the currently selected saturation) slightly smaller on top.
mSaturationPointerColor.setColor(mSaturationColor);
canvas.drawCircle(mSaturationSliderX, mSaturationY, (float) (mPointerRadius / 1.2), mSaturationPointerColor);
}
use of android.graphics.Shader in project openhab-android by openhab.
the class ColorPicker method init.
private void init(AttributeSet attrs, int defStyle) {
final TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ColorPicker, defStyle, 0);
mColorWheelStrokeWidth = a.getInteger(R.styleable.ColorPicker_wheel_size, 16);
mPointerRadius = a.getInteger(R.styleable.ColorPicker_pointer_size, 32);
// initialize X positions of brightness and saturation sliders
mBrightnessSliderX = mPointerRadius * 2;
mSaturationSliderX = -mPointerRadius * 2;
Log.d(TAG, String.format("init %f %f %f %f", mBrightnessSliderStartY, mBrightnessSliderEndY, mSaturationSliderStartY, mSaturationSliderEndY));
a.recycle();
Shader s = new SweepGradient(0, 0, COLORS, null);
mColorWheelPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mColorWheelPaint.setShader(s);
mColorWheelPaint.setStyle(Paint.Style.STROKE);
mColorWheelPaint.setStrokeWidth(mColorWheelStrokeWidth);
mBrightnessSliderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPointerHaloPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPointerHaloPaint.setColor(Color.BLACK);
mPointerHaloPaint.setStrokeWidth(5);
mPointerHaloPaint.setAlpha(0x60);
mPointerColor = new Paint(Paint.ANTI_ALIAS_FLAG);
mPointerColor.setStrokeWidth(5);
mBrightnessPointerHaloPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mBrightnessPointerHaloPaint.setColor(Color.BLACK);
mBrightnessPointerHaloPaint.setStrokeWidth(5);
mBrightnessPointerHaloPaint.setAlpha(0x60);
mBrightnessPointerBorderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mBrightnessPointerBorderPaint.setColor(Color.WHITE);
mBrightnessPointerBorderPaint.setStrokeWidth(2);
mBrightnessPointerBorderPaint.setAlpha(0x60);
mBrightnessPointerColor = new Paint(Paint.ANTI_ALIAS_FLAG);
mBrightnessPointerColor.setStrokeWidth(5);
mSaturationSliderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mSaturationPointerHaloPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mSaturationPointerHaloPaint.setColor(Color.BLACK);
mSaturationPointerHaloPaint.setStrokeWidth(5);
mSaturationPointerHaloPaint.setAlpha(0x60);
mSaturationPointerColor = new Paint(Paint.ANTI_ALIAS_FLAG);
mSaturationPointerColor.setStrokeWidth(5);
mAngle = (float) (-Math.PI / 2);
mPointerColor.setColor(calculateColor(mAngle));
// mBrightnessPointerColor.setColor(calculateColor(mAngle));
mBrightnessPointerColor.setColor(Color.BLACK);
}
use of android.graphics.Shader in project Douya by DreaminginCodeZH.
the class DrawableUtils method makeScrimDrawable.
// From Muzei, Copyright 2014 Google Inc.
public static Drawable makeScrimDrawable(int baseColor, int numStops, int gravity) {
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 = MathUtils.constrain((float) Math.pow(x, 3), 0, 1);
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);
}
});
paintDrawable.setAlpha(Math.round(0.4f * 255));
return paintDrawable;
}
Aggregations