[안드로이드] 막대 그래프 그리기 1 (Android Bar Graph - achartengine)

2013. 12. 27. 11:26Programing/Android / Java

 

  1. 라이브러리 다운로드 (Download Achartengine Lib)
    https://code.google.com/p/achartengine/



  2. 이클립스에서 안드로이드 프로젝트 생성 (Create Android Project)
    <LinearLayout
            android:id="@+id/llBody"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:orientation="vertical">
     </LinearLayout>

  3. 프로젝트에 라이브러리 추가하기 (Add Lib in the project)
      


    만약, libs 폴더가 없다면 만들어 주면 된다.

  4. 그래프 LIB 사용 (Use Graph LIB)
    // 표시할 수치값  
    List<double[]> values = new ArrayList<double[]>();  
    values.add(new double[] { 14230, 12300, 14240, 15244, 15900, 19200,   
                                            22030, 21200, 19500, 15500, 12600, 14000 });  

    /** 그래프 출력을 위한 그래픽 속성 지정객체 */ 
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();  

    // 상단 표시 제목과 글자 크기  
    renderer.setChartTitle("통화 순위");  
    renderer.setChartTitleTextSize(20);  

    // 분류에 대한 이름  
    String[] titles = new String[] { "통화량" };  

    // 항목을 표시하는데 사용될 색상값  
    int[] colors = new int[] { Color.YELLOW };  

    // 분류명 글자 크기 및 각 색상 지정  
    renderer.setLegendTextSize(15);  
    int length = colors.length;  
    for (int i = 0; i < length; i++) {  
        SimpleSeriesRenderer r = new SimpleSeriesRenderer();  
        r.setColor(colors[i]);  
        renderer.addSeriesRenderer(r);  
    }  

    // X,Y축 항목이름과 글자 크기  
    renderer.setXTitle("월");  
    renderer.setYTitle("판매량");  
    renderer.setAxisTitleTextSize(12);  

    // 수치값 글자 크기 / X축 최소,최대값 / Y축 최소,최대값  
    renderer.setLabelsTextSize(10);  
    renderer.setXAxisMin(0.5);  
    renderer.setXAxisMax(12.5);  
    renderer.setYAxisMin(0);  
    renderer.setYAxisMax(24000);   

    // 그래프 위에 값 표시하기
    renderer.getSeriesRendererAt(0).setDisplayChartValues(true);
    renderer.getSeriesRendererAt(1).setDisplayChartValues(true);
    renderer.getSeriesRendererAt(0).setChartValuesTextAlign(Align.RIGHT);
    renderer.getSeriesRendererAt(1).setChartValuesTextAlign(Align.RIGHT);
    renderer.getSeriesRendererAt(0).setChartValuesTextSize(20);
    renderer.getSeriesRendererAt(1).setChartValuesTextSize(20);

    // X,Y축 라인 색상  
    renderer.setAxesColor(Color.WHITE);  

    // 상단제목, X,Y축 제목, 수치값의 글자 색상  
    renderer.setLabelsColor(Color.CYAN);  

    // X축의 표시 간격  
    renderer.setXLabels(12);  

    // Y축의 표시 간격  
    renderer.setYLabels(5);  

    // X,Y축 정렬방향  
    renderer.setXLabelsAlign(Align.LEFT);  
    renderer.setYLabelsAlign(Align.LEFT);  

    // X,Y축 스크롤 여부 ON/OFF  
    renderer.setPanEnabled(false, false);  

    // ZOOM기능 ON/OFF  
    renderer.setZoomEnabled(false, false);  

    // ZOOM 비율  
    renderer.setZoomRate(1.0f);  

    // 막대간 간격  
    renderer.setBarSpacing(0.5f);  

    // 설정 정보 설정  
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();  
    for (int i = 0; i < titles.length; i++) {  
        CategorySeries series = new CategorySeries(titles[i]);  
        double[] v = values.get(i);  
        int seriesLength = v.length;  
        for (int k = 0; k < seriesLength; k++) {  
            series.add(v[k]);  
        }  
        dataset.addSeries(series.toXYSeries());  
    }   

    // 그래프 객체 생성  
    GraphicalView gv = ChartFactory.getBarChartView(this, dataset, renderer, Type.STACKED);   

    // 그래프를 LinearLayout에 추가  
    LinearLayout llBody = (LinearLayout) findViewById(R.id.llBody);  
    llBody.addView(gv);

  5. 결과



해당 글은 "view-source:http://hoyanet.pe.kr/1977"의 내용을 따라 실습한 내용을 기록한 것입니다.
휴대폰 사용량을 이용한 인간관계 앱을 만들던 중 실습으로 진행하다 남기는 내용으로, 부족함이 있습니다.
이럼 양해해 주시고, 자료를 봐 주셨으면 감사하겠습니다.