最近项目中用到了折线图,看了下最后决定使用Hellocharts LineChartView,基本用法就不讲了,很多人写过了,就说说我遇到的难点,首先就是我一个界面中有7个折线图,把它们都放在scrollview中,这样就会造成LineChartView和scrollview的滑动冲突,这时候就想到把当你点击scrollview的时候把scrollview的滑动给禁了,体验特别不好,后来就想着判断有几个手指在屏幕上chart_fengxiang.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int n=event.getPointerCount();
if(n==1){Log.e("xxxxxxxxxxxx",n+"----1");
//允许ScrollView截断点击事件,ScrollView可滑动
return false;
}
else{Log.e("xxxxxxxxx",n+"----2");
//不允许ScrollView截断点击事件,点击事件由子View处理
return true;
}
}
});
这样就会出现另一个问题,当有俩个手指在屏幕上的时候,n>1的时候,不仅把scrollview的滑动给禁了,把chart的滑动也给禁了,这个时候只需要稍作修改就可以了
chart_fengxiang.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int n=event.getPointerCount();
if(n==1){
//允许ScrollView截断点击事件,ScrollView可滑动
srovll.requestDisallowInterceptTouchEvent(false);
}
else{
//不允许ScrollView截断点击事件,点击事件由子View处理
srovll.requestDisallowInterceptTouchEvent(true);
}
return false;
}
});,这样子就可以啦拉。。。
还有个问题就是当数据多的时候屏幕上会出现超级多的数据,一坨一坨的,这个时候你就需要设置缩放级别了
Viewport tempViewport = new Viewport(0, chart_fengxiang.getMaximumViewport().height(), 9, 0) ;
chart.setCurrentViewport(tempViewport);