package com.florianmski.tracktoid.ui.widgets;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.PixelFormat;
import android.graphics.Shader;
import android.graphics.Shader.TileMode;
import android.graphics.drawable.Drawable;
import com.florianmski.tracktoid.ui.widgets.RateDialog.RatingColor;
import com.uwetrottmann.trakt.v2.enums.Rating;
public class RateDrawable extends Drawable
{
private Paint trianglePaint;
private Paint textPaint;
private RatingColor r;
private int size = 50;
public RateDrawable(Rating r)
{
this.r = RatingColor.fromValue(r);
int color = RatingColor.fromValue(r).color;
float[] hsv = new float[3];
int darkerColor = color;
Color.colorToHSV(darkerColor, hsv);
hsv[2] *= 0.7f;
darkerColor = Color.HSVToColor(hsv);
Shader s = new LinearGradient(size/2, size/2, 0, size, darkerColor, color, TileMode.MIRROR);
trianglePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
trianglePaint.setShader(s);
trianglePaint.setStyle(Style.FILL);
textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
textPaint.setColor(Color.WHITE);
textPaint.setTextAlign(Align.CENTER);
textPaint.setTextSize(size/2);
textPaint.setStyle(Style.FILL);
}
@Override
public void draw(Canvas canvas)
{
Path p = new Path();
p.moveTo(size, 0);
p.lineTo(0, 0);
p.lineTo(size, size);
p.close();
canvas.drawPath(p, trianglePaint);
canvas.rotate(45, size/2, size/2);
canvas.drawText(r.r.toString(), size/2, size/3, textPaint);
}
@Override
public void setAlpha(int alpha) {}
@Override
public void setColorFilter(ColorFilter cf) {}
@Override
public int getOpacity()
{
return PixelFormat.TRANSLUCENT;
}
@Override
public int getIntrinsicWidth()
{
return size;
}
@Override
public int getIntrinsicHeight()
{
return size;
}
}