package com.banking.xc.utils.ui; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.text.TextPaint; import android.text.TextUtils; import com.banking.xc.utils.Log; public class CountdownDrawable extends Drawable { private CharSequence text; private TextPaint paint; private float textSize = 18; public CountdownDrawable(Context context) { paint = new TextPaint(Paint.ANTI_ALIAS_FLAG); paint.setAntiAlias(true); paint.setStyle(Style.FILL); paint.setTextSize(18); } public CountdownDrawable(Context context, CharSequence text) { this(context); this.text = text; } @Override public void draw(Canvas canvas) { try { if (!TextUtils.isEmpty(text) && text.length() == 11) { canvas.save(); final Rect rect = getBounds(); final Rect padding = new Rect(); getPadding(padding); float x = rect.left + padding.left; float y = rect.top + padding.top + textSize + 1; final String cs1 = text.subSequence(0, 2).toString(); final String cs2 = text.subSequence(2, 4).toString(); final String cs3 = text.subSequence(4, 5).toString(); final String cs4 = text.subSequence(5, 7).toString(); final String cs5 = text.subSequence(7, 8).toString(); final String cs6 = text.subSequence(8, 10).toString(); final String cs7 = text.subSequence(10, text.length()).toString(); paint.setColor(Color.BLACK); canvas.drawText(cs1, 0, cs1.length(), x, y, paint); paint.setColor(Color.RED); canvas.drawText(cs2, 0, cs2.length(), x + paint.measureText(cs1), y, paint); paint.setColor(Color.BLACK); canvas.drawText(cs3, 0, cs3.length(), x + paint.measureText(cs1 + cs2), y, paint); paint.setColor(Color.RED); canvas.drawText(cs4, 0, cs4.length(), x + paint.measureText(cs1 + cs2 + cs3), y, paint); paint.setColor(Color.BLACK); canvas.drawText(cs5, 0, cs5.length(), x + paint.measureText(cs1 + cs2 + cs3 + cs4), y, paint); paint.setColor(Color.RED); canvas.drawText(cs6, 0, cs6.length(), x + paint.measureText(cs1 + cs2 + cs3 + cs4 + cs5), y, paint); paint.setColor(Color.BLACK); canvas.drawText(cs7, 0, cs7.length(), x + paint.measureText(cs1 + cs2 + cs3 + cs4 + cs5 + cs6), y, paint); canvas.restore(); } } catch (Exception e) { if (Log.D) { e.printStackTrace(); } } } @Override public void setAlpha(int alpha) { } @Override public void setColorFilter(ColorFilter cf) { } @Override public int getOpacity() { return 0; } public void setText(CharSequence text) { this.text = text; } public void setTextSize(float textSize) { this.textSize = textSize; if (paint != null) { paint.setTextSize(textSize); } } }