使用 MPAndroidChat 開發圖表應用

wjaning發表於2021-09-09

在完成了基本的業務功能之後,我開始去畫相應的圖表。這不是一件簡單的事,儘管已經有了 MPAndroidChart 這樣的圖表工具。但是顯然,它帶來的問題,可能比解決的問題還多。

這一天做的事情比較少,主要是在做(學習,邊做邊學)圖表相關的內容。

使用 Java 編寫 Layout

在這之前,我完全不知道,怎麼用 Java 程式碼去寫一個自定義的佈局,即如下的示例:

這裡的 LineChart 就是一個自定義的佈局,下面就是對應的類。

public class LineChart extends RelativeLayout {    public LineChart(Context context, AttributeSet attr) {        super(context, attr);
        view = LayoutInflater.from(context).inflate(R.layout.chart_layout, this);
    }
}

在這裡,我們就可以進行相應的元素操作了。

MPAndroidChat Y 軸

然後就是一些 MPAndroidChat 相應的設定。在 MPAndroidChat 中,傳統的 Y 軸是叫 LeftAxis:

YAxis leftAxis = chart.getAxisLeft();
leftAxis.removeAllLimitLines(); 
leftAxis.enableGridDashedLine(10f, 10f, 0f);
leftAxis.setDrawZeroLine(false);
leftAxis.setDrawLimitLinesBehindData(true);

MPAndroidChat X 軸設定

以及 X 軸相關的一些裝置:

XAxis xAxis = chart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(true);
xAxis.setGranularity(1f);
IAxisValueFormatter CustomAxisFormatter = new DateAxisFormatter();
xAxis.setValueFormatter(xAxisFormatter);
xAxis.enableGridDashedLine(10f, 10f, 0f);

自定義 LABEL 顯示

對應的,還有相應的格式化資料的邏輯:

public class CustomAxisFormatter implements IAxisValueFormatter {    @Override
    public String getFormattedValue(float value, AxisBase axis) {
        Date date = new Date((long) value);
        SimpleDateFormat sdf = new SimpleDateFormat("MM-dd", Locale.CHINA);        return sdf.format(date);
    }
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2983/viewspace-2799919/,如需轉載,請註明出處,否則將追究法律責任。

相關文章