2012-11-14 34 views
0

enter image description here我需要在Android的

enter image description here

妥善安置barcharts現在我用我的應用程序的AChartEngine.After越來越運行創造了一個Android的條形圖,在一仿真器顯示的一樣首先下面的圖像。但我需要像第二個下面的圖像顯示如何做到這一點?

而且我還需要改變背景的顏色,我也想改變條形圖的顏色, 如何做到這些事情?

我嘗試了這些代碼,但沒有工作

renderer.setApplyBackgroundColor(true); 
renderer.setBackgroundColor(Color.GRAY); 

請找我的參考來源。

Chart.java

public class Chart extends Activity { 
EditText edt1, edt2; 
TextView txtv1; 
Button btn; 
Bundle data; 

String[] orderNo = new String[10]; 
int[] freightRate = new int[10]; 
int[] marginPercent = new int[10]; 

@Override 
public void onCreate(Bundle savedInstanceState)  { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    edt1 = (EditText) findViewById(R.id.editText1); 
    edt2 = (EditText) findViewById(R.id.editText2); 
    btn = (Button) findViewById(R.id.button1); 

    btn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      getTMSChart(edt1.getText().toString(), edt2.getText().toString()); 
      Intent intnt = new Intent(v.getContext(), BarGraphActivity.class); 
      intnt.putExtras(data); 

      startActivity(intnt); 
     } 
    }); 
} 

public void getTMSChart(String FromDate, String ToDate) 
{ 

    System.setProperty("http.keepAlive", "false"); 
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 

    envelope.dotNet = true; 

    String METHOD = "GetTMSChart"; 
    String NAMESPACE = "http://tempuri.org/"; 
    String SOAP_ACTION = "http://tempuri.org/GetTMSChart"; 
    String URL = "http://54.251.60.177/TMSOrdersService/TMSDetails.asmx"; 

    SoapObject request = new SoapObject(NAMESPACE, METHOD); 

    request.addProperty("FromDate", FromDate.trim()); 
    request.addProperty("ToDate", ToDate.trim()); 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

    try { 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
     SoapObject result = (SoapObject) envelope.bodyIn; 
     SoapObject root = (SoapObject) ((SoapObject) (result).getProperty(0)).getProperty("NewDataSet"); 
     int tablesCount = root.getPropertyCount(); 

     data = new Bundle(); 

     for (int i = 0; i < tablesCount; i++) { 

      SoapObject table = (SoapObject) root.getProperty(i); 
      orderNo[i] = table.getPropertyAsString("Order_No"); 
      freightRate[i] = Integer.parseInt(table.getPropertyAsString("Freight_Rate")); 
      marginPercent[i] = Integer.parseInt(table.getPropertyAsString("Margin_Percent"));    

/*Toast.makeText(getApplicationContext(), "Order No:" + orderNo[i] + "\nFreigtRate:" + freightRate[i] + "\nMarginPc:" + marginPercent[i], Toast.LENGTH_SHORT).show();*/ 
     } 
     data.putStringArray("orderno", orderNo); 
     data.putIntArray("freightrate", freightRate); 
     data.putIntArray("marginpercent", marginPercent); 
     data.putInt("count",tablesCount); 
    } 
catch (Exception e) 
{ 
    Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show(); 
    e.printStackTrace(); 
    } }} 

BarGraphActivity.java

public class BarGraphActivity extends Activity{ 

String[] orderNo = new String[10]; 
int[] freightRate = new int[10]; 
int[] marginPercent = new int[10]; 
int count; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main1); 

    Bundle idata = getIntent().getExtras(); 
    if (idata !=null) 
    { 
     orderNo = idata.getStringArray("orderno"); 
     freightRate = idata.getIntArray("freightrate"); 
     marginPercent = idata.getIntArray("marginpercent"); 
     count = idata.getInt("count"); 


     CategorySeries series = new CategorySeries("Order-FreightRate Graph"); 
     for (int i = 0; i < count; i++){ 
      series.add(orderNo[i], freightRate[i]); 
     } 


     XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
     dataset.addSeries(series.toXYSeries()); 

     XYSeriesRenderer renderer = new XYSeriesRenderer(); 
     renderer.setDisplayChartValues(true); 
     //renderer.setChartValuesSpacing(1); 



     XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); 
     mRenderer.addSeriesRenderer(renderer); 

     for (int i = 0; i < count; i++){ 
      mRenderer.addXTextLabel(i+1, orderNo[i]); 
      } 

     mRenderer.setZoomButtonsVisible(true); 
     mRenderer.setBarSpacing(0.5); 


     Intent intent = ChartFactory.getBarChartIntent(getApplicationContext(), dataset, mRenderer, Type.DEFAULT); 
     startActivity(intent);  
     }  } } 

感謝您的寶貴時間!..

回答

1

你好如果你想改變背景顏色爲您圖表只是使用這些方法

mrenderer.setApplyBackgroundColor(true); 
    mrenderer.setBackgroundColor(Color.parseColor("#898989")); // here you have to give hexa decimal code 
    mrenderer.setMarginsColor(Color.parseColor("#898989")); // here you have to give hexa decimal code 

如果你想改變你的酒吧顏色意味着只是做這樣

 int[] colors = new int[] { Color.parseColor("#DAE1EB"), Color.parseColor("#406193")}; 
    int color_length = colors.length; 
    for (int i = 0; i < color_length; i++) 
    { 
     SimpleSeriesRenderer r = new SimpleSeriesRenderer(); 
     r.setColor(colors[i]); 
     r.setChartValuesSpacing(5); 
     mrenderer.addSeriesRenderer(r); 
    } 

如果要創建多個渲染器來使用不同的顏色爲雙條。如果你正在創建單條意味着只給一種顏色。它會起作用。