content: package edu.berkeley.cs.amplab.carat.android.ui;
  
  import android.content.Context;
  import android.graphics.Bitmap;
  import android.graphics.Canvas;
  import android.graphics.Paint;
  import android.graphics.Paint.Style;
  import android.graphics.drawable.BitmapDrawable;
  import android.util.AttributeSet;
  import android.widget.LinearLayout;
  import android.R;
  
  /**
   * View to Draw pie.
   */
  public class BatteryLayoutView extends LinearLayout {
  
      private static final String TAG = "BatteryLayout";
  
      private Bitmap fullPie = null;
  
      public BatteryLayoutView(Context context) {
          super(context);
      }
  
      public BatteryLayoutView(Context context, AttributeSet ar) {
          super(context, ar);
      }
  
      private void drawBattery() {
          if (fullPie != null)
              return;
          fullPie = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
          Canvas c = new Canvas(fullPie);
  
          Paint p = new Paint();
          p.setColor(bgColor);
  
          // 30% battery tip
          if (w > h) {
              float size = h * 0.3f;
              float from = (h - size) / 2;
              float to = h - from;
              c.drawRect(0, 0, w - 20, h, p);
              c.drawRect(0, from, w, to, p);
          } else {
              float size = w * 0.3f;
              float from = (w - size) / 2;
              float to = w - from;
              c.drawRect(0, 20, w, h, p);
              c.drawRect(from, 0, to, h, p);
          }
      }
  
      private int bgColor = 0xFF808080;
  
      private int w = 0;
      private int h = 0;
  
      private Paint p;
  
      @Override
      protected void onSizeChanged(int w, int h, int oldw, int oldh) {
          // TODO Auto-generated method stub
          super.onSizeChanged(w, h, oldw, oldh);
          if (w == 0 || h == 0)
              return;
  
          this.w = w;
          this.h = h;
  
          p = new Paint();
          p.setAntiAlias(true);
          p.setColor(bgColor);
          p.setTextSize(100);
          p.setStyle(Style.FILL);
          drawBattery();
          this.setBackground(new BitmapDrawable(fullPie));
      }
  }
  