package io.kaif.mobile.view.graphics.drawable; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.drawable.Drawable; public class Triangle extends Drawable { private Paint paint; private int alpha; Path triangle; private boolean reverse; public Triangle(int color) { this(color, false); } public Triangle(int color, boolean reverse) { this.reverse = reverse; this.triangle = new Path(); this.paint = new Paint(); this.paint.setAntiAlias(true); this.paint.setColor(color); this.paint.setStyle(Paint.Style.FILL); } @Override public int getOpacity() { return PixelFormat.OPAQUE; } @Override public void draw(Canvas canvas) { canvas.drawPath(triangle, this.paint); } @Override protected void onBoundsChange(Rect bounds) { triangle.reset(); if (reverse) { triangle.moveTo(bounds.left + bounds.width() / 2f, bounds.bottom); triangle.lineTo(bounds.left + bounds.width(), bounds.top); triangle.lineTo(bounds.left, bounds.top); return; } triangle.moveTo(bounds.left + bounds.width() / 2f, bounds.top); triangle.lineTo(bounds.left + bounds.width(), bounds.bottom); triangle.lineTo(bounds.left, bounds.bottom); } @Override public void setAlpha(int alpha) { this.alpha = alpha; } @Override public int getAlpha() { return alpha; } @Override public void setColorFilter(ColorFilter cf) { paint.setColorFilter(cf); } }