/** * Copyright (c) 2012 Todoroo Inc * * See the file "LICENSE" for the full license governing this code. */ package com.todoroo.astrid.core; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.util.AttributeSet; import android.view.View; /** * Draws filters * * @author Tim Su <tim@todoroo.com> * */ public class FilterView extends View { private int start = 0, end = 0, max = 1; private static final int FILTER_COLOR = Color.rgb(0x1f, 0x78, 0xb4); private static final int BG_COLOR = Color.rgb(0xe9, 0xe9, 0xe9); private static final int TEXT_COLOR = Color.WHITE; // --- boilerplate public void setStart(int start) { this.start = start; } public void setEnd(int end) { this.end = end; } public void setMax(int max) { this.max = max; } public FilterView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public FilterView(Context context, AttributeSet attrs) { super(context, attrs); } public FilterView(Context context) { super(context); } // --- painting code @Override protected void onDraw(Canvas canvas) { Paint paint = new Paint(); paint.setColor(BG_COLOR); paint.setStyle(Paint.Style.FILL); canvas.drawRect(0, 0, getWidth(), getHeight(), paint); paint.setColor(FILTER_COLOR); Path path = new Path(); path.moveTo(getWidth() * (0.5f - 0.5f * start / max), 0); path.lineTo(getWidth() * (0.5f + 0.5f * start / max), 0); path.lineTo(getWidth() * (0.5f + 0.5f * end / max), getHeight()); path.lineTo(getWidth() * (0.5f - 0.5f * end / max), getHeight()); path.close(); canvas.drawPath(path, paint); paint.setColor(TEXT_COLOR); paint.setTextAlign(Paint.Align.CENTER); paint.setTextSize(16); canvas.drawText(Integer.toString(end), getWidth() / 2, getHeight() / 2 + 8, paint); } }