package com.mopub.mobileads.resource; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import com.mopub.common.util.Dips; public class CountdownDrawable extends CircleDrawable implements TextDrawable { private final static float TEXT_SIZE_SP = 18f; private final Paint mTextPaint; private String mSecondsRemaining; private final float textSizePixels; private Rect mTextRect; public CountdownDrawable(final Context context) { super(); mSecondsRemaining = ""; mTextPaint = new Paint(); textSizePixels = Dips.dipsToFloatPixels(TEXT_SIZE_SP, context); mTextPaint.setTextSize(textSizePixels); mTextPaint.setAntiAlias(true); mTextPaint.setColor(Color.WHITE); mTextPaint.setStyle(Paint.Style.FILL); mTextPaint.setTextAlign(Paint.Align.LEFT); mTextRect = new Rect(); } @Override public void draw(final Canvas canvas) { super.draw(canvas); final String text = String.valueOf(mSecondsRemaining); mTextPaint.getTextBounds(text, 0, text.length(), mTextRect); final int x = getCenterX() - mTextRect.width() / 2; final int y = getCenterY() + mTextRect.height() / 2; canvas.drawText(text, x, y, mTextPaint); } /** * TextDrawable implementation */ public void updateText(final String text) { if (!mSecondsRemaining.equals(text)) { mSecondsRemaining = text; invalidateSelf(); } } }