이번 시간에는 차트 데이터 범례(Legend) 커스텀하는 방법에 대하여 알아보겠습니다.
이전 포스팅에 이어서 하겠습니다.
이전 포스팅은 아래 링크를 들어가시면 됩니다.
2022.05.01 - [안드로이드] - [안드로이드] LineChart 만드는 방법 part3 - 차트 스타일 변경
- 설명 -
차트의 legend를 가져와서 객체를 생성하고, legend 커스텀을 한다.
1. 라벨 객체 생성
Legend legend = lineChart.getLegend();
2. 라벨 표시(디폴트 true)
legend.setEnabled(true);
3. 라벨 텍스트 색상
legend.setTextColor(Color.RED);
4. 라벨 텍스트 사이즈
legend.setTextSize(15);
5. 라벨 아이콘 설정
legend.setForm(Legend.LegendForm.CIRCLE);
예: LINE(선), CIRCLE(원),SQUARE(네모)
6. 라벨 간 거리
legend.setXEntrySpace(15);
7. 라벨 아이콘과 라벨 텍스트 거리
legend.setFormToTextSpace(10);
public class MainActivity extends AppCompatActivity{
LineChart lineChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//초기화
lineChart = findViewById(R.id.line_chart);
//1. 데이터셋에 데이터 넣기
LineDataSet lineDataSet1 = new LineDataSet(data1(), "Data Set1");
LineDataSet lineDataSet2 = new LineDataSet(data2(), "Data Set2");
//2. 리스트에 데이터셋 추가
ArrayList<ILineDataSet> dataSets = new ArrayList<>();
dataSets.add(lineDataSet1);
dataSets.add(lineDataSet2);
/* 차트 스타일 */
//차트 배경 색상
lineChart.setBackgroundColor(Color.BLACK);
//차트 데이터 없음 표시
lineChart.setNoDataText("No Data");
//차트 데이터 없음 텍스트 색상
lineChart.setNoDataTextColor(Color.BLUE);
//격자 그리드 적용
lineChart.setDrawGridBackground(true);
//차트 외곽선 진하게
lineChart.setDrawBorders(true);
//차트 외곽선 색상
lineChart.setBorderColor(Color.RED);
//차트 외곽선 굵기
lineChart.setBorderWidth(5);
//범례(라벨)
Legend legend = lineChart.getLegend();
//라벨 표시 (디폴트 true)
legend.setEnabled(true);
//라벨 텍스트 색상
legend.setTextColor(Color.RED);
//라벨 텍스트 사이즈
legend.setTextSize(15);
//라벨 아이콘 설정
legend.setForm(Legend.LegendForm.CIRCLE);
//라벨 아이콘 크기 설정
legend.setFormSize(10);
//라벨 간 거리
legend.setXEntrySpace(15);
//라벨 아이콘과 라벨 텍스트 거리
legend.setFormToTextSpace(10);
//커스텀 라벨 만들어 보기
LegendEntry[] legendEntries = new LegendEntry[2];
//색상
int[] colorArray = {Color.BLUE, Color.GREEN};
//라벨명
String[] legendName = {"Data1", "Data2"};
for(int i = 0; i < legendEntries.length; i++){
LegendEntry entry = new LegendEntry();
//색상
entry.formColor = colorArray[i];
//텍스트
entry.label = legendName[i];
//담기
legendEntries[i] = entry;
}
//적용
legend.setCustom(legendEntries);
//설명
Description description = new Description();
description.setText("설명"); // 설명
description.setTextSize(20);//설명 텍스트 크기
description.setTextColor(Color.BLUE); //텍스트 색상
lineChart.setDescription(description);
//3. 라인데이터에 리스트 추가
LineData data = new LineData(dataSets);
//4. 차트에 라인데이터 추가
lineChart.setData(data);
//5. 차트 초기화
lineChart.invalidate();
}//onCreate
//데이터 생성
private ArrayList<Entry> data1(){
ArrayList<Entry> dataList = new ArrayList<>();
dataList.add(new Entry(0, 10));
dataList.add(new Entry(1, 20));
dataList.add(new Entry(2, 30));
dataList.add(new Entry(3, 40));
return dataList;
}
//데이터 생성
private ArrayList<Entry> data2(){
ArrayList<Entry> dataList = new ArrayList<>();
dataList.add(new Entry(0, 15));
dataList.add(new Entry(1, 25));
dataList.add(new Entry(3, 35));
dataList.add(new Entry(5, 45));
return dataList;
}
}//MainActivity
2022.04.14 - [안드로이드] - [안드로이드] 레이아웃 배경 색상 애니메이션 적용하는 방법
2022.03.28 - [안드로이드] - [안드로이드] 숫자 맞추기 게임 Up&Down 만드는 방법 part1 - 화면 구성
2022.03.02 - [안드로이드] - [안드로이드] SQLite RecyclerView 연락처 만드는 방법 part1 - 조회
[안드로이드] LineChart 만드는 방법 part6 - 차트 X축 Y축 데이터 포맷 (0) | 2022.05.04 |
---|---|
[안드로이드] LineChart 만드는 방법 part5 - 차트(라인) 데이터 꾸미기 (0) | 2022.05.03 |
[안드로이드] LineChart 만드는 방법 part3 - 차트 스타일 변경 (0) | 2022.05.01 |
[안드로이드] LineChart 만드는 방법 part2 - 멀티 데이터 구현 (0) | 2022.04.30 |
[안드로이드] LineChart 만드는 방법 part1 - 기본 구현 (0) | 2022.04.29 |
댓글 영역