package org.schmivits.airball.widget; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Paint.Align; import android.graphics.Rect; import android.graphics.Typeface; public class Text extends Widget { // TODO: This is a bit of a hack because text gets clipped; need to improve private static final float RIGHT_PADDING = 3f; private final String mText; private final Paint mPaint; public Text(String text, float size, int color, Typeface typeface) { mText = text; mPaint = new Paint(); mPaint.setColor(color); mPaint.setTypeface(typeface); mPaint.setTextSize(size); mPaint.setTextAlign(Align.LEFT); mPaint.setAntiAlias(true); Rect r = new Rect(); mPaint.getTextBounds(text, 0, text.length(), r); sizeTo(r.width() + RIGHT_PADDING, r.height()); } @Override protected void drawContents(Canvas canvas) { canvas.drawText(mText, 0, getHeight(), mPaint); } }