@Override
  public void draw(Canvas c, Layer l) {
    if (layer == l && alpha > 0) {
      paint.setAlpha(alpha);
      int width = numbers.getMinimumWidth() / 10;

      location.top = top;
      location.bottom = top + getPrologHeight();
      location.left = left + (getWidth() - prolog.getMinimumWidth()) / 2;
      location.right = location.left + prolog.getMinimumWidth();
      c.drawBitmap(prolog.getBitmap(), null, location, paint);

      source.top = 0;
      source.bottom = numbers.getIntrinsicHeight();
      location.top = top + numbers_offset;
      location.bottom = top + getTotalHeight();
      for (int i = digits - 1, n = number > 0 ? number : 0; i >= 0; --i, n = n / 10) {
        location.left = left + (getWidth() - width * digits) / 2 + i * width;
        location.right = location.left + width;
        source.left = (n % 10) * width;
        source.right = source.left + width;
        c.drawBitmap(numbers.getBitmap(), source, location, paint);
      }
    }
  }
 public void setImage(String bitmapLocation) {
   this.bitmapLocation = bitmapLocation;
   if (bitmapLocation == null || bitmapLocation.equals("")) return;
   Bitmap backgroundBitmap =
       ImageTools.decodeFile(
           bitmapLocation,
           DisplayUtils
               .dispayWidth); // BitmapFactory.decodeFile(bitmapLocation,
                              // ImageTools.getDefaultBitmapOptions());
   BitmapDrawable background = (BitmapDrawable) topLayout.getBackground();
   topLayout.setBackgroundDrawable(
       new BitmapDrawable(
           ImageTools.resizeBitmapToFitExactlyInBox(
               backgroundBitmap,
               DisplayUtils.getDpiSpecificValue(background.getMinimumWidth()),
               DisplayUtils.getDpiSpecificValue(background.getMinimumHeight()))));
   Utils.recycle(backgroundBitmap);
   hideWidgets();
 }
 public int getWidth() {
   return Math.max(numbers.getMinimumWidth() / 10 * digits, prolog.getMinimumWidth());
 }