Deniz Özkan | aChartEngine Kullanarak Android’de Grafik Çizme
15378
post-template-default,single,single-post,postid-15378,single-format-standard,ajax_fade,page_not_loaded,,footer_responsive_adv,qode-theme-ver-14.2,qode-theme-bridge,disabled_footer_top,wpb-js-composer js-comp-ver-5.4.7,vc_responsive

aChartEngine Kullanarak Android’de Grafik Çizme

aChartEngine Kullanarak Android’de Grafik Çizme

Android yazılımlarda grafik uygulamak için bir çok yol vardır. Bunlardan bazıları şunlardır :

  • Google Charts
  • aChartEngine charting library
  • AndroidPlot

Hepsinin kendisine göre avantajı ve dezavantajı vardır. GoogleCharts kullanılabilmesi için internetin gerekli olması bunlara bir örnektir.

aChartEngine kütüphanesi; Line, Bar ve Pie gibi çeşitli grafik biçimlerini destekler. Biz Android’de grafik oluşturmak için bu kütüphaneyi kullanacağız. En güncel kütüphaneyi, dökümanları ve demo uygulamasını buradan indirebilirsiniz. Biz bugün bar grafik türünü açıklayan tek bir uygulama yapacağız.

Öncelikle yeni bir android projesi oluşturuyoruz, tip olarak Blank activity seçiyoruz.

Proje kök dizini altında “libs” klasörü yoksa oluşturuyoruz.

aChartEngine’in yukarıdaki linkten indirdiğimiz en son sürümünün jar dosyasını “libs” kalsörü içerisine atıyoruz.

Şimdi Android’de eChartEngine kullanmaya hazırız.

 

Android’de Bar(Çubuk) Grafikleri Kullanmak

İki şirket arasındaki 10 yıllık büyümeyi karşılaştıran bir bar grafik oluşturacağız.

aChartEngine grafiği iki yolla işleme ve döndürme yeteneğine sahiptir

  1. Grafik Activity’si döndürebilir.
  2. Başka bir activitye ya da parçaya gömülebilen bir grafik görünümü döndürebilir.

Biz bir grafik Activity’si döndürme yeteneğini kullanacağız.

1- İlk olarak AndroidManifest.xml dosyasına aşağıdaki kodu ekliyoruz.

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

2- Daha sonra Activity_main.xml dosyamıza, bar grafiği activty’sini açacak bir buton ekleyelim.

<Button
    android:id="@+id/generatePieChart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="45dp"
    android:text="Bar Grafik Oluştur --->" />

3- Activty’mizi açacak butonu da eklediğimize göre Bar grafiğimizi kodlamaya geçebiliriz. MainActivty.java dosyasına gidin ve aşağıdaki iki satırı MainActivity classına yapıştırın. bu iki dizi, grafik çizerken kullanılacak örnek değerleri içerir. İhtiyacınıza göre değiştirebilirsiniz.

int[] firstData={23,145,67,78,86,190,46,78,167,164};
int[] secondData={83,45,168,138,67,150,64,87,144,188};

4- Şimdi MainActivity Classımıza aşağıdaki fonksiyonu ekliyoruz.

public void getBarChart(){
    XYMultipleSeriesRenderer barChartRenderer = getBarChartRenderer();
    setBarChartSettings(barChartRenderer);
    Intent intent = ChartFactory.getBarChartIntent(this, getBarDemoDataset(), barChartRenderer, Type.DEFAULT);
    startActivity(intent);
    }
 private XYMultipleSeriesDataset getBarDemoDataset() {
        XYMultipleSeriesDataset barChartDataset = new XYMultipleSeriesDataset();
                CategorySeries firstSeries = new CategorySeries("Growth of Company1");
                for(int i=0;i<firstData.length;i++)
                    firstSeries.add(firstData[i]);
                barChartDataset.addSeries(firstSeries.toXYSeries());
        
             CategorySeries secondSeries = new CategorySeries("Growth of Company2");
                for(int j=0;j<secondData.length;j++)
                    secondSeries.add(secondData[j]);
                barChartDataset.addSeries(secondSeries.toXYSeries());
        return barChartDataset;
      }
 
 public XYMultipleSeriesRenderer getBarChartRenderer() {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        renderer.setAxisTitleTextSize(20);
        renderer.setChartTitleTextSize(18);
        renderer.setLabelsTextSize(18);
        renderer.setLegendTextSize(18);
        renderer.setMargins(new int[] {2030150});
        SimpleSeriesRenderer r = new SimpleSeriesRenderer();
        r.setColor(Color.BLUE);
        renderer.addSeriesRenderer(r);
        r = new SimpleSeriesRenderer();
        r.setColor(Color.GREEN);
        renderer.addSeriesRenderer(r);
        return renderer;
      }
 private void setBarChartSettings(XYMultipleSeriesRenderer renderer) {
        renderer.setChartTitle("Growth comparison company1 vs company2");
        renderer.setXTitle("No of Years in industry");
        renderer.setYTitle("Profit in millions");
        renderer.setXAxisMin(0.5);
        renderer.setXAxisMax(10.5);
        renderer.setYAxisMin(0);
        renderer.setYAxisMax(210);
      }
  • Renderer ve Dataset, bir grafik Activity’sinin iki temel elemanıdır. Aynı sayıda elemana sahip olmaları gerekir. İki datasetin karşılaştırılması için bir bar grafik oluşturmak istiyorsak iki tane Renderer olması gerekir.
  • getBarDemoDataset() fonksiyonu, XYMultipleSeriesDataset class’ından bir nesne döndürür. İki seri kullandığımız için iki dizi oluşturur ve her iki seriyi de dataset’e eklememiz gerekir.
  • getBarChartRenderer()  fonksiyonu, iki bar rengi ve metin boyutu, kenar boşluğu gibi belirli nitelikleri tanımlayan bir XYMultipleSeriesRenderer Class’ının nesnesini oluşturur ve döndürür.
  • setBarChartSettings () fonksiyonu, X -Y ekseni, minimum – maksimum değerler, görüntülenecek başlık gibi bir bar grafiğin en temel özelliklerini yönetir.
  • getBarChart () fonksiyonu, yukarıdaki tüm işlevleri birbirine bağlar ve Grafik Activity için niyet çağrısı yapar.
  • Tüm fonksiyon sonucu import edilmemişse, import işlemi yapılır.

5-  MainActivity.java dosyasında 2. adımda oluşturduğumuz butonun nesnesini oluşturuyoruz ve getBarChart() işlevini çağırıyoruz. Bunun için aşağıdaki kodları MainActivity’nin onCreate() methoduna aşağıdaki kodları ekliyoruz.

Button genBarChart=(Button)findViewById(R.id.generateBarChart);
genBarChart.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                getBarChart();
            }
        });

6- Şimdi projemizi emülatörde ya da bir cihazda çalıştırıyoruz ve “Bar Grafik Oluştur —>” butonuna basıyoruz ve grafiğimiz karşımızda 🙂

Umarım sorununuzu çözmeye yardımcı olabilmişimdir.

Bol kodlu, bol projeli günler dilerim 🙂

Henüz yorum yok

Yorum yapmak ister misiniz?