先引入一下
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

圖片.png
maven { url 'https://jitpack.io' }

圖片.png
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".RadarActivity">
<com.github.mikephil.charting.charts.RadarChart
android:id="@+id/radarChart"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
activity
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import com.github.mikephil.charting.charts.RadarChart;
import com.github.mikephil.charting.components.AxisBase;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.RadarData;
import com.github.mikephil.charting.data.RadarDataSet;
import com.github.mikephil.charting.data.RadarEntry;
import com.github.mikephil.charting.formatter.IAxisValueFormatter;
import com.github.mikephil.charting.formatter.ValueFormatter;
import com.github.mikephil.charting.interfaces.datasets.IRadarDataSet;
import java.util.ArrayList;
import java.util.List;
public class RadarActivity extends AppCompatActivity {
private RadarChart radarChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_radar);
radarChart = findViewById(R.id.radarChart);
setChartData2_2();
XAxis xAxis = radarChart.getXAxis();
// 模擬X軸標(biāo)簽數(shù)據(jù)
xAxis.setTextColor(Color.GRAY); // 文本顏色為灰色
xAxis.setTextSize(20f); // 文本大小為18dp
// 設(shè)置標(biāo)簽的顯示格式
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
final String[] weekStrs = new String[]{"美貌", "智慧", "愛我的心", "會(huì)胖多少", "美貌加持"};
System.out.println(weekStrs[(int) value]);
// return super.getFormattedValue(value);
return weekStrs[(int) value];
}
});
YAxis yAxis = radarChart.getYAxis();
yAxis.setAxisMaximum(70f); // 要達(dá)到100需要把該值設(shè)為80,至于原因可以試著向下調(diào)小和向上調(diào)大看看效果就
}
/**
* 設(shè)置圖表數(shù)據(jù)
*/
private void setChartData2_2() {
/* RadarData的List類型參數(shù)的構(gòu)造方法 */
List<IRadarDataSet> dataSets = new ArrayList<>();
dataSets.add(creatingData("靈魂"));
RadarData data = new RadarData(dataSets);
radarChart.setData(data);
}
/**
* 創(chuàng)建虛擬圖表數(shù)據(jù)
* @param lable 數(shù)據(jù)標(biāo)簽
* @return
*/
private RadarDataSet creatingData(String lable) {
List<RadarEntry> yVals = new ArrayList<>();
for (int i = 0; i < 5; i++) {
yVals.add(new RadarEntry((float) (Math.random() * 100))); // 生成1-100的隨機(jī)數(shù)
}
RadarDataSet ds = new RadarDataSet(yVals, lable);
ds.setColor(Color.parseColor("#FFC1C1"));
ds.setDrawFilled(true); // 繪制填充,默認(rèn)為false
ds.setFillColor(Color.parseColor("#FFC1C1")); // 填充顏色
ds.setFillAlpha(51); // 填充內(nèi)容透明度
ds.setDrawValues(false); // 指定那組數(shù)據(jù)(RadarDataSet對(duì)象)不顯示標(biāo)簽
return ds;
}
/**
* 創(chuàng)建一組虛擬圖表數(shù)據(jù)
* @param lable 標(biāo)簽
* @param color 顏色
* @return
*/
private RadarDataSet creatingData(String lable, int color) {
RadarDataSet ds = creatingData(lable);
ds.setColor(color);
// ds.setColor(color, 102); // 第二個(gè)參數(shù)(alpha)設(shè)置顏色的透明度
ds.setDrawFilled(true); // 繪制填充,默認(rèn)為false
ds.setFillColor(color); // 填充顏色
ds.setFillAlpha(51); // 填充內(nèi)容透明度
ds.setDrawValues(false); // 指定那組數(shù)據(jù)(RadarDataSet對(duì)象)不顯示標(biāo)簽
return ds;
}
}
效果圖

圖片.png