28 Aralık 2012 Cuma

android programlama

Android’te grafik çizdirebilmek için varsayılan olarak gelen bir chart nesnesi maalesef yok. Bunun için ya ücretli ya da ücretsiz kütüphanelerden yararlanmak gerekiyor. Var olan açık kaynak kütüphanelerle ilgili örneklerde bir hayli az. AndroidPlotAChartEngineGraphView bunlardan birkaçı ve en yaygın olanları.Graphview’ı inceleme fırsatım olmadı ama AndroidPlot ve AChartEngine’i inceleme fırsatı buldum. AchartEngine ile ufak bir barchart çizdirdim ve örnek kodları açıklamalarıyla paylaşmak istedim. Bu kütüphane ile ayrıca Line, Pie Chart gibi grafikleride çizdirmek mümkün. Uygulamada kullanılan kütüphaneyi buradan indirebilirsiniz Örnek kodları çalıştırmak için xml layotunuza bi LinearLayout eklemeniz yeterli ve herhangi bi izinde gerektirmediği için manifesttede ekstra bir değişiklik yapmanız gerekmiyor.


01public class MyPlotActivity extends Activity {
02 
03    private XYMultipleSeriesDataset dataset;
04    private XYMultipleSeriesRenderer renderer;
05    private View mChartView;
06 
07    @Override
08    public void onCreate(Bundle savedInstanceState) {
09        super.onCreate(savedInstanceState);
10        setContentView(R.layout.activity_my_plot);
11 
12        // ChartView'ımızı ekleyeceğimiz LinearLayout
13        LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout1);
14 
15        // Grafik değerlerininin tutulacağı veri seti
16        dataset = new XYMultipleSeriesDataset();
17 
18        // Birinci kategorideki grafik değerleri
19        CategorySeries catSeries = new CategorySeries("Değer1");
20        catSeries.add(50);
21        catSeries.add(80);
22        catSeries.add(69);
23        dataset.addSeries(catSeries.toXYSeries());
24 
25        // İkinci kategorideki grafik değerleri
26        CategorySeries catSeries2 = new CategorySeries("Değer2");
27        catSeries2.add(11);
28        catSeries2.add(45);
29        catSeries2.add(50);
30        dataset.addSeries(catSeries2.toXYSeries());
31 
32        // Grafik için gerekli ayarları oluşturma
33        renderer = new XYMultipleSeriesRenderer();
34        // X ve Y ekseni zoom ayarları
35        renderer.setZoomEnabled(falsefalse);
36        // X ve Y ekseni kaydırma ayarları
37        renderer.setPanEnabled(falsefalse);
38        // Y ekseninin max ve min değerleri
39        renderer.setYAxisMax(100);
40        renderer.setYAxisMin(0);
41        // x ekseninin max ve min değerleri
42        renderer.setXAxisMin(0);
43        renderer.setXAxisMax(4);
44        renderer.setBarSpacing(0.3);
45        renderer.setLegendTextSize(14);
46        // Renklere ait kategori
47        renderer.setShowLegend(true);
48        // X eksenindeki etiket sayısı
49        renderer.setXLabels(0);
50        renderer.setLabelsTextSize(14);
51        // Grafik Başlığı
52        renderer.setChartTitle("Grafik Başlığı");
53        renderer.setChartTitleTextSize(12);
54        // X ve Y ekseni başlıkları
55        renderer.setXTitle("Bar1 – Bar2 - Bar3");
56        renderer.setYTitle("Y ekseni - Birim");
57        // Birinci kategori renklendirme
58        SimpleSeriesRenderer simpleRend = new SimpleSeriesRenderer();
59        simpleRend.setColor(Color.rgb(25513923));
60        renderer.addSeriesRenderer(simpleRend);
61        // İkinci kategori renklendirme
62        simpleRend = new SimpleSeriesRenderer();
63        simpleRend.setColor(Color.rgb(12921955));
64        renderer.addSeriesRenderer(simpleRend);
65 
66        // chartView nesnemizi belirlediğimiz özelliklere göre oluşturuyoruz
67        mChartView = ChartFactory.getBarChartView(this, dataset, renderer, Type.DEFAULT);
68        // Daha önce xml'de tanımladığımız LinearLayout'a chartView'ımızı ekliyoruz
69        layout.addView(mChartView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
70 
71    }
72 
73}

Hiç yorum yok:

Yorum Gönder