Hellocharts
图表组件父类 AbstractChartView
AbstractChartView属性
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发生变化的监听器
Viewport 属性
通过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)
图表数据父类AbstractChartData
AbstractChartData通用属性
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轴
Axis
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):设置是否显示轴标签与图表之间的分割线
AxisValue属性 Axis轴坐标类
setValue(float value):设置该轴坐标的值
setLabel(String label):设置该轴坐标的标签
SelectedValue属性 用来保存选中的值的索引的包装类。
setFirstIndex(int firstIndex):设置第一个索引,如LineChart中表示第几条线的值(lineIndex)。
setSecondIndex(int secondIndex):设置第二个索引,如LineChart中表示该条线上的第几个值(valueIndex)。
setType(SelectedValueType type):设置类型。
set(int firstIndex, int secondIndex, SelectedValueType type)
饼状
注意,饼状图与其他图表不同的是,饼状图并没有轴,也不支持缩放。为了更好的显示效果,饼状图的布局宽高应相等。
PieChartView
饼状组件,用于界面显示图表,使用如下
<lecho.lib.hellocharts.view.PieChartView
android:id="@+id/chart_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
PieChartView属性介绍
setPieChartData 设置数据
setOnValueTouchListener 设置图表触摸事件
setChartRotation 设置旋转角度
setChartRotationEnabled 设置是否支持旋转
setCircleFillRatio 设置饼状图占用控件的比例
PieChartData
饼状数据 SliceValue数据模型
setValue(float value):设置值
setColor(int color):设置颜色
setSliceSpacing(int sliceSpacing)
setLabel(String label):设置标签
使用例子
List<SliceValue> values = new ArrayList<SliceValue>();
values.add(new SliceValue(1f, Color.RED));
values.add(new SliceValue(10f, 0xFFEC7BA8));
values.add(new SliceValue(20f, 0xFFE84486));
PieChartData data = new PieChartData(values);
PieChartData属性介绍
PieChartData(List<SliceValue> values) 有参构造,设置占比与对应占比颜色
setValues(List<SliceValue> values) 设置数据模型
setHasLabels 设置是否有标签,默认内部标签
setHasLabelsOutside 设置是否启用外部标签
setHasLabelsOnlyForSelected 设置是否为选中时有标签
setHasCenterCircle 设置是否有中心圆
setCenterCircleScale 设置中心圆占比,最大设置1
setSlicesSpacing 设置分割间距
setCenterText1 设置中心文本1
setCenterText2 设置中心文本2
setCenterText1FontSize 设置中心文本字体1
setCenterText2Typeface 设置中心文本字体2
柱状
ColumnChartView
柱状组件,用于界面显示图表,使用如下
<lecho.lib.hellocharts.view.ColumnChartView
android:id="@+id/chart_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
ColumnChartView属性
setColumnChartData 设置图表数据
setOnValueTouchListener 设置图表触摸事件
SubcolumnValue 数据模型
setValue 设置数据
setColor 设置颜色
setTarget 设置目标
setLabel 设置标签
new SubcolumnValue((i + j + 2) * 5, 0xFFEC7BA8)
Column的属性
用来表示一组柱状图。一组柱状图可以分成多个子柱状图。
setValues 设置柱状图数据内容
setFormatter 设置柱状图数据标注小数位
setHasLabels 设置是否有数据标注
setHasLabelsOnlyForSelected 设置是否点击显示标注
//X轴数据集合
List<String> week = new ArrayList<>();
String[] stringArray = getResources().getStringArray(R.array.week);
for (String weekName : stringArray) {
week.add(weekName);
}
X轴与柱状数据即可关联集合
ArrayList<AxisValue> axisValues = new ArrayList<>();
//柱状数据组集合
List<Column> columns = new ArrayList<>();
//柱状数据组
List<SubcolumnValue> values;
for (int i = 0; i < 5; i++) {
values = new ArrayList<>();
for (int j = 0; j < 2; j++) {
if (j == 0) {
values.add(new SubcolumnValue((i + j + 2) * 5, 0xFFEC7BA8));
} else {
values.add(new SubcolumnValue((i + j + 2) * 5, Color.RED));
}
}
Column column = new Column(values);
ColumnChartValueFormatter chartValueFormatter = new SimpleColumnChartValueFormatter(2);
column.setFormatter(chartValueFormatter);
column.setHasLabels(true);
column.setHasLabelsOnlyForSelected(false);
columns.add(column);
//给x轴坐标设置描述
axisValues.add(new AxisValue(i).setLabel(week.get(i)));
}
ColumnChartData属性
setColumns 设置数据
setStacked 设置同一组数据是否叠堆
setFillRatio 设置组与组之间的间距比
setBaseValue 设置基准值
折线
LineChartView
LineChartView 属性
setOnValueTouchListener 设置数据值点击监听 实现onValueSelected(int lineIndex, int pointIndex, PointValue value)和onValueDeselected()两个监听回调方法。 lineIndex表示点击的“线”的索引,pointIndex表示点击的“点”的索引,value表示该“点”的值。
setLineChartData 设置图表数据
例子
<lecho.lib.hellocharts.view.LineChartView
android:id="@+id/chart_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
PreviewLineChartView 折线图的预览视图。
setPreviewColor 设置颜色
PointValue 属性 对“点”的封装类。
set 设置点的值
setLabel 设置点的标签信息
Line 属性 对“线”的封装类
setColor 设置线颜色
setCubic 设置平滑曲线
setSquare 设置是否为直角的形式显示线
setFilled 设置是否填充线下颜色
setShape 设置点样式 默认提供ValueShape.CIRCLE(圆形)、ValueShape.SQUARE (方形)、ValueShape.DIAMOND(菱形
setPathEffect 设置线的路径效果
setValues 保存线上的每个点信息
setHasLabelsOnlyForSelected 设置点击显示标签
setHasLabels 设置是否显示标签
setHasLines 设置是否显示线
setHasPoints 设置是否显示点
setPointRadius 设置点的半径
setStrokeWidth 设置线的粗细
setAreaTransparency 设置透明度
setPointColor 设置点颜色
LineChartData 折线图数据模型类
setLines 设置展示数据
setBaseValue 设置初始值
setAxisXBottom 设置X轴
setAxisYLeft 设置Y轴