android 数据报表

引用:http://www.oschina.net/code/snippet_12_1257

[图片] android_xy.gif

[文件] xy_plot_4_Android_src.zip ~ 57KB    下载(127)

[代码] 绘制网格线的方法

01 public static void  draw_the_grid(Canvas this_g,  Vector these_labels)
02      {        
03         double rounded_max = 0.0;
04         double rounded_min = 0.0;
05         double rounded_max_temp;
06         Object curElt; 
07         String[] cur_elt_array;
08         int left_margin_d, right_margin_d;     
09  
10         if( draw_only_this_idx == -1)     
11            curElt = these_labels.elementAt(0);  // default  it to 1st one if non set
12         else
13            curElt = these_labels.elementAt(draw_only_this_idx);  // now just the 1st elt
14             
15         cur_elt_array = (String[])curElt;
16  
17         rounded_max = get_ceiling_or_floor (Double.parseDouble(cur_elt_array[2]) , true);
18         rounded_min = get_ceiling_or_floor (Double.parseDouble(cur_elt_array[3]) ,false);
19  
20        // ok so now we have the max value of the set just get a cool ceiling and we go on
21         final Paint paint = new Paint(); 
22         paint.setTextSize(15);
23          
24        left_margin_d =  getCurTextLengthInPixels(paint, Double.toString(rounded_max));
25        //keep the position for later drawing -- leave space for the legend
26        int p_height = 170;
27        int p_width = 220;
28        int[] tmp_draw_sizes = {2 + left_margin_d, 25,p_width - 2 -
29         left_margin_d ,p_height - 25 -5};
30        drawSizes = tmp_draw_sizes; //keep it for later processing
31          
32         //with the mzrgins worked out draw the plotting grid
33        paint.setStyle(Paint.Style.FILL);
34        paint.setColor(Color.WHITE ); 
35         
36        // Android does by coords
37        this_g.drawRect(drawSizes[0], drawSizes[1],drawSizes[0]+
38         drawSizes[2], drawSizes[1]+ drawSizes[3] , paint);
39         
40        paint.setColor(Color.GRAY );      
41         
42         // finally draw the grid     
43         
44        paint.setStyle(Paint.Style.STROKE);
45        this_g.drawRect(drawSizes[0], drawSizes[1],drawSizes[0]+
46         drawSizes[2], drawSizes[1]+ drawSizes[3] , paint);
47  
48            for(int i=1; i < 5 ; i++)
49            {
50                this_g.drawLine(drawSizes[0], drawSizes[1] +
51         (i * drawSizes[3] / 5), drawSizes[0] + drawSizes[2],
52         drawSizes[1] + (i * drawSizes[3] / 5), paint);
53                this_g.drawLine(drawSizes[0]+ (i * drawSizes[2] / 5),
54         drawSizes[1], drawSizes[0] + (i * drawSizes[2] / 5),
55         drawSizes[1] + drawSizes[3], paint);
56            }
57  
58           // good for one value
59            print_axis_values_4_grid(this_g, cur_elt_array[1] ,
60         Double.toString(rounded_max) , Double.toString(rounded_min),
61         cur_elt_array[0] , 2 ,0 );
62           
63      }  // --- end of draw_grid ---
posted @ 2011-09-23 16:30  镇水古月  阅读(849)  评论(0编辑  收藏  举报