Android 平臺創建 XY 圖表的完整例子

b4c2 9年前發布 | 2K 次閱讀 Java

public static void  draw_the_grid(Canvas this_g,  Vector these_labels)
     {
double rounded_max = 0.0; double rounded_min = 0.0; double rounded_max_temp; Object curElt;
String[] cur_elt_array; int left_margin_d, right_margin_d;

    if( draw_only_this_idx == -1)      
       curElt = these_labels.elementAt(0);  // default  it to 1st one if non set 
    else
       curElt = these_labels.elementAt(draw_only_this_idx);  // now just the 1st elt

    cur_elt_array = (String[])curElt;

    rounded_max = get_ceiling_or_floor (Double.parseDouble(cur_elt_array[2]) , true);
    rounded_min = get_ceiling_or_floor (Double.parseDouble(cur_elt_array[3]) , false);

   // ok so now we have the max value of the set just get a cool ceiling and we go on
    final Paint paint = new Paint();  
    paint.setTextSize(15);

   left_margin_d =  getCurTextLengthInPixels(paint, Double.toString(rounded_max));
   //keep the position for later drawing -- leave space for the legend
   int p_height = 170;
   int p_width = 220;
   int[] tmp_draw_sizes = {2 + left_margin_d, 25,p_width - 2 - 
    left_margin_d ,p_height - 25 -5};
   drawSizes = tmp_draw_sizes; //keep it for later processing

    //with the mzrgins worked out draw the plotting grid
   paint.setStyle(Paint.Style.FILL); 
   paint.setColor(Color.WHITE );  

   // Android does by coords
   this_g.drawRect(drawSizes[0], drawSizes[1],drawSizes[0]+ 
    drawSizes[2], drawSizes[1]+ drawSizes[3] , paint);

   paint.setColor(Color.GRAY );       

    // finally draw the grid      

   paint.setStyle(Paint.Style.STROKE); 
   this_g.drawRect(drawSizes[0], drawSizes[1],drawSizes[0]+ 
    drawSizes[2], drawSizes[1]+ drawSizes[3] , paint);

       for(int i=1; i < 5 ; i++)
       {
           this_g.drawLine(drawSizes[0], drawSizes[1] + 
    (i * drawSizes[3] / 5), drawSizes[0] + drawSizes[2], 
    drawSizes[1] + (i * drawSizes[3] / 5), paint);
           this_g.drawLine(drawSizes[0]+ (i * drawSizes[2] / 5), 
    drawSizes[1], drawSizes[0] + (i * drawSizes[2] / 5), 
    drawSizes[1] + drawSizes[3], paint);
       }

      // good for one value
       print_axis_values_4_grid(this_g, cur_elt_array[1] , 
    Double.toString(rounded_max) , Double.toString(rounded_min), 
    cur_elt_array[0] , 2 ,0 );

 } </pre> 


 本文由用戶 b4c2 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!