반응형
안드로이드에서 차트(그래프)를 그리는 방법에는 크게 2가지 정도가 있습니다.
J free chart와 같은 라이브러리로 그리는 방법과 웹뷰를 이용하는 방법이 있습니다.
간단하게 Google Chart(구글차트)라는 것이 있습니다.
웹뷰만 있으면 웹에서 라이브러리를 가져와 쉽게 그려줍니다.
일단 구글 차트를 그리기 위해 this page 로 가셔서 차트를 골라보세요.
많은 그래프들이 있습니다^^
일단 Line Chart를 선택했는데요.
클릭해보니 HTML소스와 API를 제공합니다.
일단 제 코드를 보시죠~
HTML 코드입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | function setMessage(msg){ arr=msg; google.setOnLoadCallback(drawChart); } function drawChart() { filt=arr.split("|"); //filtering filt2=filt[0].split(","); //filtering title[0][0]=filt2[0]; //x title[0][1]=filt2[1]; //title data=filt[1].split("/");//data filter arrRange = data[0].split(",").length; for(i=0;i<data.length;i++){ tempdata=data[i].split(","); chartdata[i][0]=tempdata[0]; chartdata[i][1]*=tempdata[1]; } showchart=title.concat(chartdata); var data = google.visualization.arrayToDataTable(showchart); var options = { curveType: 'function', title: showchart[0][1] }; var chart = new google.visualization.LineChart(document.getElementById('chart_div')); chart.draw(data, options); } | cs |
function setMessage(msg) 는 android에서 보내는 명령을 받는 부분입니다.
이 곳에서 String을 받아서 drawChart()로 전달해 줍니다.
그리고 drawChart()는 차트를 그려줍니다.
그리고 차트를 그리기 위한 데이터(String)를 받기위해서는 아래와 같은 JAVA 코드가 필요합니다.
JAVA 코드
1 2 3 4 5 6 7 8 9 10 11 | private void init() { String url = "file:///android_asset/www/index.html"; //google chart String sendChart="volt|10:01:00,222.1,10:01:01,223.0,10:01:02,222.8,10:01:03,222.2; //data chart=(WebView)findViewById(R.id.chart); chart.getSettings().setJavaScriptEnabled(true); chart.loadUrl(url); chart.loadUrl("javascript:setMessage('" + sendChart + "')"); } | cs |
여기서 chart는 webview를 나타냅니다.
그리고 'chart.loadUrl("javascript:setMessage('" + sendChart + "')");' 이 부분이 javascript로 string을 보냅니다.
실행해 보면 아래와 같은 구글차트가 보입니다.
심플하면서도 같단하죠?^^
반응형
'Study > Android' 카테고리의 다른 글
Nio udp Client (비동기 UDP Client) (0) | 2015.02.11 |
---|---|
smoothie chart (스무디 차트)를 이용한 차트 (0) | 2015.02.11 |
현재 연결된 네트웍의 MAC Address(맥주소)가져오기 (0) | 2015.02.11 |
폰과 태블릿 구분하기 (0) | 2015.02.11 |
속도빠른 안드로이드 에뮬레이터 제니모션 (0) | 2015.02.11 |