開源圖標(biāo)庫hellocharts常見API總結(jié)

hellocharts是一個(gè)用來生成統(tǒng)計(jì)圖表的三方庫埋虹,目前支持折線圖、柱狀圖和餅狀圖等常見圖表。支持縮放帕识、滑動(dòng)和動(dòng)畫效果泛粹。是一個(gè)非常實(shí)用的Android平臺(tái)的圖標(biāo)庫。在這里我對(duì)hellocharts中常見的api進(jìn)行了整理肮疗,以供方便地進(jìn)行開發(fā)晶姊。
首先,需要在Android Studio中導(dǎo)包:
compile 'com.github.lecho:hellocharts-library:1.5.8@aar'
<h1>主要的類</h1>
XXXValue:用來對(duì)單個(gè)的數(shù)據(jù)進(jìn)行包裝伪货。如PointValue们衙、SubcolumnValue;
XXXChartData:圖表的數(shù)據(jù)模型碱呼。如LineChartData蒙挑、ColumnChartData;
XXXChartView:圖表控件對(duì)象愚臀。如LineChartView忆蚀、ColumnChartView;
PreviewXXXChartView:圖表控件的預(yù)覽控件姑裂。如PreviewLineChartView馋袜;
Axis:坐標(biāo)軸;
Viewport:視圖窗口舶斧,用來控制圖表空間的縮放效果和顯示欣鳖。
<h1>通用API</h1>
<h2>AbstractChartData</h2>
圖表的數(shù)據(jù)模型抽象類。
setValueLabelBackgroundEnabled(boolean isValueLabelBackgroundEnabled):設(shè)置是否顯示標(biāo)簽的背景
setValueLabelBackgroundColor(int valueLabelBackgroundColor):設(shè)置標(biāo)簽背景顏色
setValueLabelsTextColor(int valueLabelTextColor):設(shè)置標(biāo)簽文字顏色茴厉,默認(rèn)為白色
setValueLabelTextSize(int valueLabelTextSize):設(shè)置標(biāo)簽文字字號(hào)泽台,默認(rèn)為12sp
setValueLabelTypeface(Typeface typeface):設(shè)置標(biāo)簽文字字體
setValueLabelBackgroundAuto(boolean isValueLabelBackgrountAuto):設(shè)置是否自動(dòng)繪制標(biāo)簽背景

不使用自動(dòng)繪制背景

不使用自動(dòng)繪制背景,會(huì)使用valueLabelBackgroundColor所設(shè)置的顏色矾缓,默認(rèn)為灰色师痕。
使用自動(dòng)繪制背景

使用自動(dòng)繪制背景,會(huì)使用Line的顏色作為標(biāo)簽背景色而账。
setAxisXBottom(Axis axisX):在圖表下方設(shè)置x軸
setAxisYLeft(Axis axisY):在圖表左側(cè)設(shè)置y軸
setAxisXTop(Axis axisX):在圖表上方設(shè)置x軸
setAxisYRight(Axis axisY):在圖表右側(cè)設(shè)置y軸
<h2>Axis</h2>
static generateAxisFromRange(float start, float stop, float step):生成從值start到stop按照step等差的Axis軸對(duì)象胰坟。
static generateAxisFromCollection(List<Float> axisValues):根據(jù)集合axisValues生成Axis軸對(duì)象。
static generateAxisFromCollection(List<Float> axisValues, List<String> axisValuesLabels):根據(jù)集合axisValues生成軸對(duì)象泞辐,axisValuesLabels作為軸坐標(biāo)對(duì)應(yīng)的標(biāo)簽笔横。
setValues(List<AxisValue> values):設(shè)置該軸的坐標(biāo)信息。
setName(String name):設(shè)置軸的名稱咐吼,默認(rèn)為空不顯示吹缔。
setTextSize(int textSize):設(shè)置設(shè)置軸標(biāo)簽和名稱的字號(hào),默認(rèn)為12sp锯茄。
setTypeface(Typeface typeface):設(shè)置軸標(biāo)簽和名字的字體厢塘。
setTextColor(int color):設(shè)置軸標(biāo)簽和名字的顏色茶没。
setAutoGenerated(boolean isAutoGenerated):設(shè)置是否自動(dòng)生成軸對(duì)象,自動(dòng)適應(yīng)表格的范圍晚碾。
setHasLines(boolean hasLines):設(shè)置是否顯示坐標(biāo)網(wǎng)格抓半。
setLineColor(int lineColor):設(shè)置網(wǎng)格線的顏色。
setInside(boolean isInside):設(shè)置是否將軸坐標(biāo)的值顯示在圖表內(nèi)側(cè)格嘁。
setInside的效果

setMaxLabelChars(int maxLabelChars):設(shè)置軸標(biāo)簽可顯示的最大字符個(gè)數(shù)笛求,范圍在0-32之間。
setFormatter(AxisValueFormatter formatter):設(shè)置軸坐標(biāo)格式化工具
setHasSeparationLine(boolean hasSeparationLine):設(shè)置是否顯示軸標(biāo)簽與圖表之間的分割線
<h2>AxisValue</h2>
Axis軸坐標(biāo)類糕簿。
setValue(float value):設(shè)置該軸坐標(biāo)的值
setLabel(String label):設(shè)置該軸坐標(biāo)的標(biāo)簽
<h2>AbstractChartView</h2>
圖表視圖抽象類探入。
setInteractive(boolean isInteractive):設(shè)置該圖表是否可交互。如不可交互懂诗,則圖表不會(huì)響應(yīng)縮放蜂嗽、滑動(dòng)、選擇或點(diǎn)擊等操作殃恒。默認(rèn)值為true徒爹,可交互。
setZoomEnabled(boolean isZoomEnabled):設(shè)置是否可縮放芋类。
setScrollEnabled(boolean isScrollEnabled):設(shè)置是否可滑動(dòng)。
moveTo(float x, float y):將視圖窗口(viewport)移動(dòng)至指定位置界阁。如果可以移動(dòng)侯繁,viewport將以該點(diǎn)為視圖的中心。
moveToWithAnimation(float x, float y):以動(dòng)畫的形式移動(dòng)viewport泡躯。
setZoomType(ZoomType zoomType):設(shè)置縮放類型贮竟,可選的類型包括:ZoomType.HORIZONTAL_AND_VERTICAL, ZoomType.HORIZONTAL, ZoomType.VERTICAL,默認(rèn)值為HORIZONTAL_AND_VERTICAL较剃。
setMaxZoom(float maxZoom):設(shè)置最大縮放比例咕别。默認(rèn)值20。
setZoomLevel(float x, float y, float zoomLevel):以坐標(biāo)(x,y)為中心写穴,自動(dòng)縮放表格惰拱。注意,該方法應(yīng)在設(shè)置完chartview的數(shù)據(jù)(chartdata)后再調(diào)用啊送。
setZoomLevelWithAnimation(float x, float y, float zoomLevel)
setValueTouchEnabled(boolean isValueTouchEnabled):設(shè)置是否允許點(diǎn)擊圖標(biāo)上的值偿短,默認(rèn)為true。
setMaximumViewport(Viewport maxViewport):設(shè)置最大化的viewport馋没。注意昔逗,該方法應(yīng)在設(shè)置完chartview的數(shù)據(jù)(chartdata)后再調(diào)用。
setCurrentViewport(Viewport targetViewport):設(shè)置當(dāng)前的viewport
setCurrentViewportWithAnimation(Viewport targetViewport)
resetViewports():重新計(jì)算最大化和當(dāng)前viewport
setValueSelectionEnabled(boolean isValueSelectionEnabled):設(shè)置是否可以選中圖表中的值篷朵,即當(dāng)點(diǎn)擊圖表中的數(shù)據(jù)值后勾怒,會(huì)一直處于選中狀態(tài)婆排,直到用戶點(diǎn)擊其他空間。默認(rèn)為false笔链。
selectValue(SelectedValue selectedValue):選中一個(gè)數(shù)據(jù)值
setContainerScrollEnabled(boolean isContainerScrollEnabled, ContainerScrollType containerScrollType):設(shè)置是否允許圖表在父容器中滑動(dòng)段只。
startDataAnimation():開始以動(dòng)畫的形式更新圖表數(shù)據(jù)。
startDataAnimation(long duration)
cancelDataAnimation()
setDataAnimationListener(ChartAnimationListener animationListener):設(shè)置數(shù)據(jù)動(dòng)畫的監(jiān)聽器
setViewportCalculationEnabled(boolean isEnabled):設(shè)置是否允許在動(dòng)畫進(jìn)行中或設(shè)置完表格數(shù)據(jù)后卡乾,自動(dòng)計(jì)算viewport的大小翼悴。如果禁止,則需要可以手動(dòng)設(shè)置幔妨。
setViewportAnimationListener(ChartAnimationListener animationListener):設(shè)置viewport動(dòng)畫的監(jiān)聽器
setViewportChangeListener(ViewportChangeListener viewportChangeListener):設(shè)置viewport發(fā)生變化的監(jiān)聽器
<h2>Viewport</h2>
通過left, top, right, bottom四邊確定的一個(gè)矩形區(qū)域鹦赎。用來控制視圖窗口的縮放。
set(float left, float top, float right, float bottom):設(shè)置大小误堡。 left和right可以控制我們?cè)趚軸上想要顯示哪部分?jǐn)?shù)據(jù)古话,同理,top和bottom可以控制我們?cè)趛軸上要展示的數(shù)據(jù)锁施。
offset(float dx, float dy):使viewport發(fā)生偏移陪踩,dx為正數(shù)表示向右,dy為正數(shù)表示向下
offsetTo(float newLeft, float newTop):使viewport偏移到指定位置悉抵,寬高不會(huì)改變
inset(float dx, float dy):使viewport縮放肩狂,dx為正數(shù)會(huì)使viewport的寬邊窄,dy為正數(shù)會(huì)使viewport的高度變長(zhǎng)姥饰。即如果是正數(shù)傻谁,會(huì)放大所要顯示的區(qū)域。
contains(float x, float y):判斷點(diǎn)(x,y)是否在viewport內(nèi)
contains(float left, float top, float right, float bottom):判斷矩形是否在viewport內(nèi)
contains(Viewport v)
<h2>SelectedValue</h2>
用來保存選中的值的索引的包裝類列粪。
setFirstIndex(int firstIndex):設(shè)置第一個(gè)索引审磁,如LineChart中表示第幾條線的值(lineIndex)。
setSecondIndex(int secondIndex):設(shè)置第二個(gè)索引岂座,如LineChart中表示該條線上的第幾個(gè)值(valueIndex)态蒂。
setType(SelectedValueType type):設(shè)置類型。
set(int firstIndex, int secondIndex, SelectedValueType type)
<h1>折線圖Line</h1>
<h2>PointValue</h2>
對(duì)“點(diǎn)”的封裝類费什。
set(float x, float y):設(shè)置點(diǎn)的值
setLabel(String label):點(diǎn)的標(biāo)簽信息
<h2>Line</h2>
對(duì)“線”的封裝類
setColor(int color):線的顏色
setPointColor(int pointColor):點(diǎn)的顏色
setAreaTransparency(int areaTransparency):透明度钾恢?
setStrokeWidth(int strokeWidth):線的粗細(xì)
setPointRadius(int pointRadius):點(diǎn)的半徑
setHasPoints(boolean hasPoints):是否顯示點(diǎn)
setHasLines(boolean hasLines):是否顯示線
setHasLabels(boolean hasLabels):是否顯示標(biāo)簽
setHasLabelsOnlyForSelected(boolean hasLabelsOnlyForSelected):是否只有在點(diǎn)擊“點(diǎn)”時(shí)才顯示標(biāo)簽
setCubic(boolean isCubic):是否是平滑曲線
setSquare(boolean isSquare):是否以直角的形式顯示線
直角顯示

setFilled(boolean isFilled):是否對(duì)線的下方填充
填充

setShape(ValueShape shape):“點(diǎn)”的樣式,默認(rèn)提供ValueShape.CIRCLE(圓形)鸳址、ValueShape.SQUARE (方形)赘那、ValueShape.DIAMOND(菱形)三種樣式。
setPathEffect(PathEffect pathEffect):線的路徑效果
路徑效果

setValues(List<PointValue> values):List集合氯质,用來保存線上的每個(gè)點(diǎn)的信息募舟。
<h2>LineChartData</h2>
折線圖數(shù)據(jù)模型類。
setLines(List<Line> lines):設(shè)置所要展示的“線”
setBaseValue(float baseValue):設(shè)置數(shù)據(jù)的初始值闻察,即所有的數(shù)據(jù)從baseValue開始計(jì)算拱礁,默認(rèn)值為0琢锋。
<h2>LineChartView</h2>
setOnValueTouchListener(LineChartOnValueSelectListener touchListener):設(shè)置數(shù)據(jù)值點(diǎn)擊監(jiān)聽。LineChartOnValueSelectListener需要實(shí)現(xiàn)onValueSelected(int lineIndex, int pointIndex, PointValue value)和onValueDeselected()兩個(gè)監(jiān)聽回調(diào)方法呢灶。lineIndex表示點(diǎn)擊的“線”的索引吴超,pointIndex表示點(diǎn)擊的“點(diǎn)”的索引,value表示該“點(diǎn)”的值鸯乃。
<h2>PreviewLineChartView</h2>
折線圖的預(yù)覽視圖鲸阻。
setPreviewColor(int color)
<h1>柱狀圖Column</h1>
<h2>SubcolumnValue</h2>
用來保存子柱狀圖信息。
setValue(float value)
<h2>Column</h2>
用來表示一組柱狀圖缨睡。一組柱狀圖可以分成多個(gè)子柱狀圖鸟悴。
setValues(List<SubcolumnValue> values):設(shè)置柱狀圖的數(shù)據(jù)內(nèi)容。
<h2>ColumnChartData</h2>
柱狀圖數(shù)據(jù)模型類奖年。
setColumns(List<Column> columns):設(shè)置數(shù)據(jù)
setStacked(boolean isStacked):設(shè)置是否將同一組的數(shù)據(jù)進(jìn)行堆疊顯示
堆疊

setFillRatio(float fillRatio):設(shè)置組與組之間的間隔比率细诸。取值范圍從0-1,1表示組與組之間不留任何間隔陋守,0表示組之間會(huì)留有2px的間隔震贵。
setBaseValue(float baseValue)
<h2>ColumnChartView</h2>
setColumnChartData(ColumnChartData data):設(shè)置柱狀圖的數(shù)據(jù)
setOnValueTouchListener(ColumnChartOnValueSelectListener touchListener):設(shè)置柱狀圖點(diǎn)擊監(jiān)聽。
<h1>餅狀圖Pie</h1>
注意水评,餅狀圖與其他圖表不同的是猩系,餅狀圖并沒有軸,也不支持縮放中燥。為了更好的顯示效果寇甸,餅狀圖的布局寬高應(yīng)相等。
<h2>SliceValue</h2>
餅狀圖中“扇形”的數(shù)據(jù)模型褪那。
setValue(float value):設(shè)置值
setColor(int color):設(shè)置顏色
setSliceSpacing(int sliceSpacing)
setLabel(String label):設(shè)置標(biāo)簽
<h2>PieChartData</h2>
餅狀圖的數(shù)據(jù)模型
setValues(List<SliceValue> values)
setHasLabelsOutside(boolean hasLabelsOutside):設(shè)置是否將標(biāo)簽顯示在餅狀圖外側(cè)。False顯示在內(nèi)測(cè)式塌,true顯示在外側(cè)博敬。
setHasCenterCircle(boolean hasCenterCircle):設(shè)置餅狀圖中心是否為空心圓
setCenterCircleColor(int centerCircleColor):設(shè)置空心圓的顏色
setCenterCircleScale(float centerCircleScale):設(shè)置空心圓的大小
setCenterText1(String centerText1):設(shè)置餅狀圖中心的文字1
setCenterText2(String centerText2)
setCenterText1FontSize(int centerText1FontSize):設(shè)置餅狀圖中心文字1的大小
setCenterText1Typeface(Typeface text1Typeface)
setSlicesSpacing(int sliceSpacing):設(shè)置扇形之間的間距大小
<h2>PieChartView</h2>
setPieChartData(PieChartData data)
setOnValueTouchListener(PieChartOnValueSelectListener touchListener)
setChartRotation(int rotation, boolean isAnimated):設(shè)置餅狀圖旋轉(zhuǎn)的角度
setChartRotationEnabled(boolean isRotationEnabled):設(shè)置餅狀圖是否可以通過滑動(dòng)來旋轉(zhuǎn)
setCircleFillRatio(float fillRatio):設(shè)置餅狀圖占用控件的比例,取值范圍0-1峰尝。默認(rèn)值為1偏窝,表示餅狀圖盡可能地占滿整個(gè)控件。
<h1>其他</h1>
其他類型的圖表并不常見武学,但API與上面幾種類型圖表的API類似祭往,如果需要可以自行查閱,這里不再進(jìn)一步羅列火窒。
BubbleChartView:氣泡圖
ComboLineColumnChartView:聯(lián)合折線和柱狀圖的圖表

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末硼补,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子熏矿,更是在濱河造成了極大的恐慌已骇,老刑警劉巖离钝,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異褪储,居然都是意外死亡卵渴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門鲤竹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浪读,“玉大人,你說我怎么就攤上這事辛藻〉忾伲” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵揩尸,是天一觀的道長(zhǎng)蛹屿。 經(jīng)常有香客問我,道長(zhǎng)岩榆,這世上最難降的妖魔是什么错负? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮勇边,結(jié)果婚禮上犹撒,老公的妹妹穿的比我還像新娘。我一直安慰自己粒褒,他們只是感情好识颊,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著奕坟,像睡著了一般祥款。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上月杉,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天刃跛,我揣著相機(jī)與錄音,去河邊找鬼苛萎。 笑死桨昙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腌歉。 我是一名探鬼主播涵妥,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼顷霹,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼誉券!你這毒婦竟也來了瓶摆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤馍驯,失蹤者是張志新(化名)和其女友劉穎藐俺,沒想到半個(gè)月后炊甲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡欲芹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年卿啡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菱父。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颈娜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浙宜,到底是詐尸還是另有隱情官辽,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布粟瞬,位于F島的核電站同仆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏裙品。R本人自食惡果不足惜俗批,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望市怎。 院中可真熱鬧岁忘,春花似錦、人聲如沸区匠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驰弄。三九已至麻汰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間戚篙,已是汗流浹背五鲫。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留已球,地道東北人臣镣。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓辅愿,卻偏偏與公主長(zhǎng)得像智亮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子点待,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容