需要在 Android 應用中繪製類似 WiFi 信號強度的拋物線圖表,詢問是使用 Canvas 自繪還是採用第三方圖表庫。
直接使用成熟的開源圖表庫 android-charts(或 MPAndroidChart、HelloCharts 等),可快速實現各類圖表,包括曲線、柱狀、雷達圖等,並支持觸摸交互、動畫、縮放等功能。
// build.gradle
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
// Activity 中
LineChart chart = findViewById(R.id.chart);
List entries = new ArrayList<>();
entries.add(new Entry(0, 10));
entries.add(new Entry(1, 20));
// ... 添加更多數據點
LineDataSet dataSet = new LineDataSet(entries, "WiFi 信號");
LineData lineData = new LineData(dataSet);
chart.setData(lineData);
chart.invalidate(); // 刷新
若極簡需求或無法引入第三方庫,可自行實現 View.onDraw(Canvas),使用 Path 繪製貝塞爾曲線模擬拋物線,但需自行處理坐標映射、適配不同屏幕密度、觸摸事件等,工作量大且易出錯。
除非有極特殊的定製化需求,否則優先選擇成熟圖表庫,專注業務邏輯而非繪圖細節。