1515 */
1616public class BarView extends View {
1717 private ArrayList <Integer > dataList ;
18-
1918 private Paint bgPaint ;
20- private Paint redPaint ;
19+ private Paint fgPaint ;
2120 private Rect rect ;
2221 private int mViewWidth ;
2322 private int mViewHeight ;
2423 private int barWidth ;
2524 private int topMargin ;
26- private final int GRAY_COLOR = Color .parseColor ("#F6F6F6" );
27- private final int RED_COLOR = Color .parseColor ("#FC496D" );
25+ private final int BACKGROUND_COLOR = Color .parseColor ("#F6F6F6" );
26+ private final int FOREGROUND_COLOR = Color .parseColor ("#FC496D" );
2827
2928
3029
@@ -35,19 +34,11 @@ public BarView(Context context, AttributeSet attrs){
3534 super (context , attrs );
3635 bgPaint = new Paint ();
3736 bgPaint .setAntiAlias (true );
38- bgPaint .setColor (GRAY_COLOR );
39- redPaint = new Paint (bgPaint );
40- redPaint .setColor (RED_COLOR );
37+ bgPaint .setColor (BACKGROUND_COLOR );
38+ fgPaint = new Paint (bgPaint );
39+ fgPaint .setColor (FOREGROUND_COLOR );
4140 rect = new Rect ();
4241 topMargin = MyUtils .dip2px (context ,5 );
43-
44- if (isInEditMode ()){
45- ArrayList <Integer > barDataList = new ArrayList <Integer >();
46- for (int i =0 ; i <7 ; i ++){
47- barDataList .add ((int )(Math .random () * 100 ));
48- }
49- setDataList (barDataList );
50- }
5142 }
5243
5344 /**
@@ -64,12 +55,12 @@ protected void onDraw(Canvas canvas) {
6455 for (int i =1 ; i <8 ; i ++){
6556 rect .set (barWidth *(2 *i -1 ),topMargin ,barWidth *2 *i ,mViewHeight );
6657 canvas .drawRect (rect ,bgPaint );
67- if (dataList != null || !dataList .isEmpty ()){
58+ if (dataList != null && !dataList .isEmpty ()){
6859 rect .set (barWidth *(2 *i -1 ),
6960 topMargin +(mViewHeight -topMargin )*dataList .get (i -1 )/100 ,
7061 barWidth *2 *i ,
7162 mViewHeight );
72- canvas .drawRect (rect ,redPaint );
63+ canvas .drawRect (rect ,fgPaint );
7364 }
7465 }
7566 }
@@ -94,16 +85,13 @@ private int measureHeight(int measureSpec){
9485
9586 private int getMeasurement (int measureSpec , int preferred ){
9687 int specSize = MeasureSpec .getSize (measureSpec );
97- int measurement = 0 ;
88+ int measurement ;
9889
9990 switch (MeasureSpec .getMode (measureSpec )){
10091 case MeasureSpec .EXACTLY :
101- // This means the width of this view has been given.
10292 measurement = specSize ;
10393 break ;
10494 case MeasureSpec .AT_MOST :
105- // Take the minimum of the preferred size and what
106- // we were told to be.
10795 measurement = Math .min (preferred , specSize );
10896 break ;
10997 default :
0 commit comments