开源图标库hellocharts常见API总结

hellocharts是一个用来生成统计图表的三方库,目前支持折线图、柱状图和饼状图等常见图表。支持缩放、滑动和动画效果。是一个非常实用的Android平台的图标库。在这里我对hellocharts中常见的api进行了整理,以供方便地进行开发。
首先,需要在Android Studio中导包:
compile 'com.github.lecho:hellocharts-library:1.5.8@aar'
<h1>主要的类</h1>
XXXValue:用来对单个的数据进行包装。如PointValue、SubcolumnValue;
XXXChartData:图表的数据模型。如LineChartData、ColumnChartData;
XXXChartView:图表控件对象。如LineChartView、ColumnChartView;
PreviewXXXChartView:图表控件的预览控件。如PreviewLineChartView;
Axis:坐标轴;
Viewport:视图窗口,用来控制图表空间的缩放效果和显示。
<h1>通用API</h1>
<h2>AbstractChartData</h2>
图表的数据模型抽象类。
setValueLabelBackgroundEnabled(boolean isValueLabelBackgroundEnabled):设置是否显示标签的背景
setValueLabelBackgroundColor(int valueLabelBackgroundColor):设置标签背景颜色
setValueLabelsTextColor(int valueLabelTextColor):设置标签文字颜色,默认为白色
setValueLabelTextSize(int valueLabelTextSize):设置标签文字字号,默认为12sp
setValueLabelTypeface(Typeface typeface):设置标签文字字体
setValueLabelBackgroundAuto(boolean isValueLabelBackgrountAuto):设置是否自动绘制标签背景

不使用自动绘制背景

不使用自动绘制背景,会使用valueLabelBackgroundColor所设置的颜色,默认为灰色。
使用自动绘制背景

使用自动绘制背景,会使用Line的颜色作为标签背景色。
setAxisXBottom(Axis axisX):在图表下方设置x轴
setAxisYLeft(Axis axisY):在图表左侧设置y轴
setAxisXTop(Axis axisX):在图表上方设置x轴
setAxisYRight(Axis axisY):在图表右侧设置y轴
<h2>Axis</h2>
static generateAxisFromRange(float start, float stop, float step):生成从值start到stop按照step等差的Axis轴对象。
static generateAxisFromCollection(List<Float> axisValues):根据集合axisValues生成Axis轴对象。
static generateAxisFromCollection(List<Float> axisValues, List<String> axisValuesLabels):根据集合axisValues生成轴对象,axisValuesLabels作为轴坐标对应的标签。
setValues(List<AxisValue> values):设置该轴的坐标信息。
setName(String name):设置轴的名称,默认为空不显示。
setTextSize(int textSize):设置设置轴标签和名称的字号,默认为12sp。
setTypeface(Typeface typeface):设置轴标签和名字的字体。
setTextColor(int color):设置轴标签和名字的颜色。
setAutoGenerated(boolean isAutoGenerated):设置是否自动生成轴对象,自动适应表格的范围。
setHasLines(boolean hasLines):设置是否显示坐标网格。
setLineColor(int lineColor):设置网格线的颜色。
setInside(boolean isInside):设置是否将轴坐标的值显示在图表内侧。
setInside的效果

setMaxLabelChars(int maxLabelChars):设置轴标签可显示的最大字符个数,范围在0-32之间。
setFormatter(AxisValueFormatter formatter):设置轴坐标格式化工具
setHasSeparationLine(boolean hasSeparationLine):设置是否显示轴标签与图表之间的分割线
<h2>AxisValue</h2>
Axis轴坐标类。
setValue(float value):设置该轴坐标的值
setLabel(String label):设置该轴坐标的标签
<h2>AbstractChartView</h2>
图表视图抽象类。
setInteractive(boolean isInteractive):设置该图表是否可交互。如不可交互,则图表不会响应缩放、滑动、选择或点击等操作。默认值为true,可交互。
setZoomEnabled(boolean isZoomEnabled):设置是否可缩放。
setScrollEnabled(boolean isScrollEnabled):设置是否可滑动。
moveTo(float x, float y):将视图窗口(viewport)移动至指定位置。如果可以移动,viewport将以该点为视图的中心。
moveToWithAnimation(float x, float y):以动画的形式移动viewport。
setZoomType(ZoomType zoomType):设置缩放类型,可选的类型包括:ZoomType.HORIZONTAL_AND_VERTICAL, ZoomType.HORIZONTAL, ZoomType.VERTICAL,默认值为HORIZONTAL_AND_VERTICAL。
setMaxZoom(float maxZoom):设置最大缩放比例。默认值20。
setZoomLevel(float x, float y, float zoomLevel):以坐标(x,y)为中心,自动缩放表格。注意,该方法应在设置完chartview的数据(chartdata)后再调用。
setZoomLevelWithAnimation(float x, float y, float zoomLevel)
setValueTouchEnabled(boolean isValueTouchEnabled):设置是否允许点击图标上的值,默认为true。
setMaximumViewport(Viewport maxViewport):设置最大化的viewport。注意,该方法应在设置完chartview的数据(chartdata)后再调用。
setCurrentViewport(Viewport targetViewport):设置当前的viewport
setCurrentViewportWithAnimation(Viewport targetViewport)
resetViewports():重新计算最大化和当前viewport
setValueSelectionEnabled(boolean isValueSelectionEnabled):设置是否可以选中图表中的值,即当点击图表中的数据值后,会一直处于选中状态,直到用户点击其他空间。默认为false。
selectValue(SelectedValue selectedValue):选中一个数据值
setContainerScrollEnabled(boolean isContainerScrollEnabled, ContainerScrollType containerScrollType):设置是否允许图表在父容器中滑动。
startDataAnimation():开始以动画的形式更新图表数据。
startDataAnimation(long duration)
cancelDataAnimation()
setDataAnimationListener(ChartAnimationListener animationListener):设置数据动画的监听器
setViewportCalculationEnabled(boolean isEnabled):设置是否允许在动画进行中或设置完表格数据后,自动计算viewport的大小。如果禁止,则需要可以手动设置。
setViewportAnimationListener(ChartAnimationListener animationListener):设置viewport动画的监听器
setViewportChangeListener(ViewportChangeListener viewportChangeListener):设置viewport发生变化的监听器
<h2>Viewport</h2>
通过left, top, right, bottom四边确定的一个矩形区域。用来控制视图窗口的缩放。
set(float left, float top, float right, float bottom):设置大小。 left和right可以控制我们在x轴上想要显示哪部分数据,同理,top和bottom可以控制我们在y轴上要展示的数据。
offset(float dx, float dy):使viewport发生偏移,dx为正数表示向右,dy为正数表示向下
offsetTo(float newLeft, float newTop):使viewport偏移到指定位置,宽高不会改变
inset(float dx, float dy):使viewport缩放,dx为正数会使viewport的宽边窄,dy为正数会使viewport的高度变长。即如果是正数,会放大所要显示的区域。
contains(float x, float y):判断点(x,y)是否在viewport内
contains(float left, float top, float right, float bottom):判断矩形是否在viewport内
contains(Viewport v)
<h2>SelectedValue</h2>
用来保存选中的值的索引的包装类。
setFirstIndex(int firstIndex):设置第一个索引,如LineChart中表示第几条线的值(lineIndex)。
setSecondIndex(int secondIndex):设置第二个索引,如LineChart中表示该条线上的第几个值(valueIndex)。
setType(SelectedValueType type):设置类型。
set(int firstIndex, int secondIndex, SelectedValueType type)
<h1>折线图Line</h1>
<h2>PointValue</h2>
对“点”的封装类。
set(float x, float y):设置点的值
setLabel(String label):点的标签信息
<h2>Line</h2>
对“线”的封装类
setColor(int color):线的颜色
setPointColor(int pointColor):点的颜色
setAreaTransparency(int areaTransparency):透明度?
setStrokeWidth(int strokeWidth):线的粗细
setPointRadius(int pointRadius):点的半径
setHasPoints(boolean hasPoints):是否显示点
setHasLines(boolean hasLines):是否显示线
setHasLabels(boolean hasLabels):是否显示标签
setHasLabelsOnlyForSelected(boolean hasLabelsOnlyForSelected):是否只有在点击“点”时才显示标签
setCubic(boolean isCubic):是否是平滑曲线
setSquare(boolean isSquare):是否以直角的形式显示线
直角显示

setFilled(boolean isFilled):是否对线的下方填充
填充

setShape(ValueShape shape):“点”的样式,默认提供ValueShape.CIRCLE(圆形)、ValueShape.SQUARE (方形)、ValueShape.DIAMOND(菱形)三种样式。
setPathEffect(PathEffect pathEffect):线的路径效果
路径效果

setValues(List<PointValue> values):List集合,用来保存线上的每个点的信息。
<h2>LineChartData</h2>
折线图数据模型类。
setLines(List<Line> lines):设置所要展示的“线”
setBaseValue(float baseValue):设置数据的初始值,即所有的数据从baseValue开始计算,默认值为0。
<h2>LineChartView</h2>
setOnValueTouchListener(LineChartOnValueSelectListener touchListener):设置数据值点击监听。LineChartOnValueSelectListener需要实现onValueSelected(int lineIndex, int pointIndex, PointValue value)和onValueDeselected()两个监听回调方法。lineIndex表示点击的“线”的索引,pointIndex表示点击的“点”的索引,value表示该“点”的值。
<h2>PreviewLineChartView</h2>
折线图的预览视图。
setPreviewColor(int color)
<h1>柱状图Column</h1>
<h2>SubcolumnValue</h2>
用来保存子柱状图信息。
setValue(float value)
<h2>Column</h2>
用来表示一组柱状图。一组柱状图可以分成多个子柱状图。
setValues(List<SubcolumnValue> values):设置柱状图的数据内容。
<h2>ColumnChartData</h2>
柱状图数据模型类。
setColumns(List<Column> columns):设置数据
setStacked(boolean isStacked):设置是否将同一组的数据进行堆叠显示
堆叠

setFillRatio(float fillRatio):设置组与组之间的间隔比率。取值范围从0-1,1表示组与组之间不留任何间隔,0表示组之间会留有2px的间隔。
setBaseValue(float baseValue)
<h2>ColumnChartView</h2>
setColumnChartData(ColumnChartData data):设置柱状图的数据
setOnValueTouchListener(ColumnChartOnValueSelectListener touchListener):设置柱状图点击监听。
<h1>饼状图Pie</h1>
注意,饼状图与其他图表不同的是,饼状图并没有轴,也不支持缩放。为了更好的显示效果,饼状图的布局宽高应相等。
<h2>SliceValue</h2>
饼状图中“扇形”的数据模型。
setValue(float value):设置值
setColor(int color):设置颜色
setSliceSpacing(int sliceSpacing)
setLabel(String label):设置标签
<h2>PieChartData</h2>
饼状图的数据模型
setValues(List<SliceValue> values)
setHasLabelsOutside(boolean hasLabelsOutside):设置是否将标签显示在饼状图外侧。False显示在内测,true显示在外侧。
setHasCenterCircle(boolean hasCenterCircle):设置饼状图中心是否为空心圆
setCenterCircleColor(int centerCircleColor):设置空心圆的颜色
setCenterCircleScale(float centerCircleScale):设置空心圆的大小
setCenterText1(String centerText1):设置饼状图中心的文字1
setCenterText2(String centerText2)
setCenterText1FontSize(int centerText1FontSize):设置饼状图中心文字1的大小
setCenterText1Typeface(Typeface text1Typeface)
setSlicesSpacing(int sliceSpacing):设置扇形之间的间距大小
<h2>PieChartView</h2>
setPieChartData(PieChartData data)
setOnValueTouchListener(PieChartOnValueSelectListener touchListener)
setChartRotation(int rotation, boolean isAnimated):设置饼状图旋转的角度
setChartRotationEnabled(boolean isRotationEnabled):设置饼状图是否可以通过滑动来旋转
setCircleFillRatio(float fillRatio):设置饼状图占用控件的比例,取值范围0-1。默认值为1,表示饼状图尽可能地占满整个控件。
<h1>其他</h1>
其他类型的图表并不常见,但API与上面几种类型图表的API类似,如果需要可以自行查阅,这里不再进一步罗列。
BubbleChartView:气泡图
ComboLineColumnChartView:联合折线和柱状图的图表

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容