2011-06-27 34 views
2

任何人都可以幫助我在android中編寫條形圖嗎?android中的條形碼代碼

我試圖運行的http://code.google.com/p/achartengine/

示例代碼,但該樣品是太大,只是從中檢索條形碼的例子。 任何人都可以建議我任何好的網站或文檔與詳細的信息編碼android的圖形?我需要在頻繁的間隔後顯示圖中的變化。

任何人都可以幫我誰之前嘗試過嗎?

+0

你的具體問題是什麼?繪製矩形非常簡單。 –

+0

@StefanHållén你好,我有一些疑問在同一個條形圖,你可以幫我。 – Goofy

+0

發佈一個單獨的,並妥善制定的問題。 –

回答

1

SO上有很多圖庫線程,你應該看看它們並嘗試不同的線程。

我這裏列出幾個:https://stackoverflow.com/questions/5156740/im-looking-for-fancy-charts-library-for-android/5157576#5157576

個人而言,我會建議使用Steemas庫 - 他們有很多經驗創造它的API中清楚地顯示繪圖庫。評估版本可以在這裏找到:

http://www.steema.com/download/mobile

如果你想創建一個Steemas庫條形圖這裏是這樣做的一個很簡單的例子:

import android.app.Activity; 
import android.os.Bundle; 

import com.steema.teechart.TChart; 
import com.steema.teechart.styles.Bar; 

public class ExampleActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     TChart chart = new TChart(this); 
     Bar exampleBar = new Bar(); 

     double[] exampleValues = {1,5,8,2.5,-3.3,10.75}; 

     exampleBar.add(exampleValues); 

     chart.addSeries(exampleBar); 

     setContentView(chart); 
    } 
} 

只是一些意見我從使用庫得到:

TeeChart info: 
    Disable 3D:   chart.getAspect().setView3D(false); 
    Disable Legend:  chart.getLegend().setVisible(false); 
    Disable footer:  chart.getFooter().setVisible(false); 
    Disable header:  chart.getHeader().setVisible(false); 

How to set marks to data value instead of cylinder number? 
    For a Bar data-set: bar.getMarks().setStyle(MarksStyle.VALUE); 

How to move the marks closer to the chart rectangle? 
    bar.getMarks().setArrowLength(5); - or negative values to put them on top of the bar 

Different styles: 
    bar.setBarStyle(BarStyle.RECTANGLE); 

How do I make the lines thicker in a graph? 
    line.getLinePen().setWidth(5); works, but it will change the width of the Legend as well. 

How do I change the color of labels on axes? 
    chart.getAxes().getLeft().getLabels().getFont().setColor(Color.WHITE); 
    chart.getAxes().getBottom().getLabels().getFont().setColor(Color.WHITE); 


SOLVED WORKAROUND - How do I set the background color of the chart itself? Tried so far (the TChart methods that take a Color from the TChart Color class, not the View methods) - only managed to make the 'surrounding' area black. 
     chart.setBackground(Color.BLACK); 
     chart.getCanvas().setBackColor(Color.BLACK); 
     chart.getGraphics3D().setBackColor(Color.BLACK); 
      ---> WORKAROUND: Use the setBackground above, then use: chart.getWalls().getBack().setVisible(false); --- setColor() on walls is bugged? 


How to choose the bounds of a chart manually? 
    chart.getAxes().getLeft().setAutomatic(false); 
    chart.getAxes().getLeft().setMinMax(-2, 2); 
+0

我對圖表有一些疑問,你可以幫我... – Goofy

+0

完整工程的任何示例源代碼? – MGR

0

對於簡單的條形圖您可以使用此代碼可能是這個解決您的問題

  1. 首先添加achartengine-1.1.0.jar在你的lib文件夾

  2. ,那麼你在清單

    <activity android:name="org.achartengine.GraphicalActivity"/> 
    
聲明

創建類:

package com.example.barchartexample;  
    import java.net.Proxy.Type; 
    import org.achartengine.ChartFactory; 
    import org.achartengine.model.CategorySeries; 
    import org.achartengine.model.XYMultipleSeriesDataset; 
    import org.achartengine.renderer.XYMultipleSeriesRenderer; 
    import org.achartengine.renderer.XYSeriesRenderer; 

    import android.content.Context; 
    import android.content.Intent; 
    import android.graphics.Color; 

    public class BarGraph { 
     public Intent getIntent(Context context){ 
     int y[]={25,10,15,20}; 
     CategorySeries series= new CategorySeries("BAR 1"); 
     for (int i = 0; i < y.length; i++) { 
      series.add("Bar"+(i+1),y[i]); 

     } 
     XYMultipleSeriesDataset dataset= new XYMultipleSeriesDataset(); 
     dataset.addSeries(series.toXYSeries()); 
     XYSeriesRenderer renderer = new XYSeriesRenderer(); 
     renderer.setColor(Color.RED); 
     renderer.setDisplayChartValues(true); 
     renderer.setChartValuesSpacing((float) 5.5d); 
     renderer.setLineWidth((float) 10.5d); 


     XYMultipleSeriesRenderer mRenderer= new XYMultipleSeriesRenderer(); 
     mRenderer.addSeriesRenderer(renderer); 
     mRenderer.setChartTitle("Simple Chart"); 
     mRenderer.setYTitle("Rupee"); 
     mRenderer.setZoomButtonsVisible(true); 
     mRenderer.setShowGrid(true); 
     mRenderer.setBarSpacing(.5); 
     mRenderer.setApplyBackgroundColor(true); 
     mRenderer.setBackgroundColor(Color.BLACK); 
     mRenderer.setXAxisMin(0); 
     mRenderer.setXAxisMax(5); 
     mRenderer.setYAxisMax(50); 
     mRenderer.setXLabels(0); 
     mRenderer.addXTextLabel(1,"Income"); 
     mRenderer.addXTextLabel(2,"Saving"); 
     mRenderer.addXTextLabel(3,"Expenditure"); 
     mRenderer.addXTextLabel(4,"NetIncome"); 
     mRenderer.setPanEnabled(true,true); 
     Intent intent = ChartFactory.getBarChartIntent(context, dataset, mRenderer,org.achartengine.chart.BarChart.Type.DEFAULT); 

     return intent; 

     }  
    } 


    package com.example.barchartexample; 

    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.Menu; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.Button; 

    public class MainActivity extends Activity { 

     Button but; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     but=(Button)findViewById(R.id.BarGraph); 
     but.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       BarGraph bar = new BarGraph(); 
       Intent barIntent= bar.getIntent(MainActivity.this); 
       startActivity(barIntent); 

      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 
1

here Source Code For any Chart in android
link 2

AChartEngine是Android應用的圖表庫。它目前支持以下圖表類型:

  • 線圖表
  • 區域圖表
  • 散點圖
  • 時間圖表
  • 條形圖
  • 餅圖
  • 氣泡圖
  • 甜甜圈圖表
  • 範圍(高至低)條形圖
  • 撥號圖表/衡量

組合(線,立方線,散射,酒吧,範圍欄,氣泡的任何組合)圖表 立方線圖表