MPAndroidChart 學(xué)習(xí)筆記2_基本設(shè)置
1.啟用禁用交互
/* @描述 啟用、禁用交互 */
private void interactionWithChart(LineChart chart) {
chart.setTouchEnabled(true);//是否開啟觸摸相關(guān)的交互方式
chart.setDragEnabled(true);//是否開啟拖拽相關(guān)的交互方式
chart.setScaleEnabled(true);//是否開啟xy軸的縮放
chart.setScaleXEnabled(true);//是否開啟x軸的縮放
chart.setScaleYEnabled(true);//是否開啟y軸的縮放
//是否開啟雙指捏合縮放:如果關(guān)閉了,仍然可以完成x或y一個軸的縮放
chart.setPinchZoom(true);
}
2.圖表的圖幅以及摩擦系數(shù)
/* @描述 圖表的圖幅以及摩擦系數(shù) */
private void flingAndSeceleration(LineChart chart) {
//如果設(shè)置為true,圖表繼續(xù)滾動后潤色,達到一種滾動平滑的效果
//默認值:true
chart.setDragDecelerationEnabled(true);
//設(shè)置摩擦系數(shù)[0:1]:float
// 0表示摩擦最大杉编,基本上一滑就停
// 1表示沒有摩擦,會自動轉(zhuǎn)化為0.9999,及其順滑
chart.setDragDecelerationFrictionCoef(0.5f);
}
3.手勢回調(diào)
調(diào)用接口:
public interface OnChartGestureListener {
/* @描述 觸摸開始(ACTION_DOWN) */
void onChartGestureStart(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture);
/* @描述 觸摸結(jié)束 */
void onChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture);
/* @描述 長按 */
public void onChartLongPressed(MotionEvent me);
/* @描述 雙擊 */
public void onChartDoubleTapped(MotionEvent me);
/* @描述 單擊 */
public void onChartSingleTapped(MotionEvent me);
/* @描述 圖幅描述 */
public void onChartFling(MotionEvent me1, MotionEvent me2, float velocityX, float velocityY);
/* @描述 縮放 */
public void onChartScale(MotionEvent me, float scaleX, float scaleY);
/* @描述 手勢移動 */
public void onChartTranslate(MotionEvent me, float dX, float dY);
}
調(diào)用接口實現(xiàn)抽象方法,然后記得在java中進行綁定:
mChart.setOnChartGestureListener(this);
4.突出高亮
/* @描述 突出高亮 */
private void highlighting(LineChart chart){
//默認為true:保證在拖動是圖像被充分放大了
chart.setHighlightPerDragEnabled(true);
//默認為true
// 設(shè)置為true之后可以通過點擊的方式高亮選擇數(shù)據(jù)點
//設(shè)置為false之后無法通過點擊方式選擇铝条,但仍然可以通過拖拽實現(xiàn)
chart.setHighlightPerTapEnabled(true);
//高亮選擇只可以在距離高亮點指定范圍內(nèi)
//當(dāng)選擇點與高亮點距離超過設(shè)置值時高亮消失
//設(shè)置之后高亮拖拽相對不好用
chart.setMaxHighlightDistance(10f);
}
針對數(shù)據(jù)集:
//數(shù)據(jù)內(nèi)容是否可以高亮選擇
dataSet.setHighlightEnabled(false);
//是否顯示高亮提示線
dataSet.setDrawHighlightIndicators(true);
//設(shè)置高亮提示先顏色
dataSet.setHighLightColor(Color.RED);