Android圖表類庫:WilliamChart
WilliamChart是基于Views的Android圖表類庫,幫助開發者在Android應用中實現折線圖、柱狀圖和堆疊柱狀圖。數值發生變化時圖表也會以動畫的效果發生變化。
使用說明:創建一個新的chart需要繼承自ChartView的坐標軸,同時實現一些必要的方法。我覺的這些方法足以讓你繪制出任何你想要的效果。
xml文件
<com.db.chart.view.ChartView
xmlns:chart="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="dp"
...
chart:chart_shadowDx="dp"
chart:chart_shadowDy="dp"
chart:chart_shadowRadius="dp"
chart:chart_shadowColor="color"
chart:chart_fontSize="dp"
chart:chart_typeface="typeface"
chart:chart_axisBorderSpacing="dp"
chart:chart_axisThickness="dp"
chart:chart_axisTopSpacing="dp"
chart:chart_axisColor="color"
chart:chart_axisX="boolean"
chart:chart_label="boolean"
chart:chart_labelColor="color"
/> // Customize labels chart.setLabels(NONE/OUTSIDE/INSIDE) chart.setLabelColor(color) chart.setFontSize(integer) chart.setTypeface(typeface) // Define grid chart.setGrid(paint) chart.setHorizontalGrid(paint) chart.setVerticalGrid(paint) // Show threshold line chart.setThresholdLine(float, paint) chart.setMaxAxisValue(integer, integer) chart.setStep(integer) chart.setTopSpacing(dimen) chart.setBorderSpacing(dimen) chart.setAxisX(boolean) chart.show() // Update values of a given set chart.updateValues(int, array) // Notify chart about updated values chart.notifyDataUpdate() // Tooltip support chart.showTooltip(view) chart.dismissTooltip(view)
LineChart(跟上面相同的部分用省略號)
<com.db.chart.LineChartView ... />
java代碼:
LineChartView chartView= new LineChartView() LineSet lineSet = new LineSet() lineSet.addPoint(new Point(string, float) // Style dots lineSet.setDots(boolean) lineSet.setDotsColor(color) lineSet.setDotsRadius(dimen) lineSet.setDotsStrokeThickness(dimen) lineSet.setDotsStrokeColor(color) // Style line lineSet.setLineThickness(dimen) lineSet.setLineColor(color) // Style background fill lineSet.setFill(boolean) lineSet.setFillColor(color) // Style type lineSet.setDashed(boolean) lineSet.setSmooth(boolean) chartView.addData(lineSet)
BarChart & StackBarChart
<com.db.chart.BarChartView ... chart:chart_barSpacing="dp" chart:chart_setSpacing="dp" />
java代碼
BarChartView chartView = new BarcChartView() barChart.setBarSpacing(dimen) barChart.setSetSpacing(dimen) barChart.setBarBackground(boolean) barChart.setBarBackgroundColor(color) barChart.setRoundCorners(dimen) BarSet barSet = new BarSet() Bar bar = new Bar(string, float) bar.setColor(color) barSet.addBar(bar) chartView.addData(barSet)
Listener的設置
chart.setOnEntryClickListener(new OnEntryClickListener(){
@Override
public void onClick(int setIndex, int entryIndex, Rect entryRect) {
//Do things
}
}); 動畫
Animation anim = new Animation() anim.setDuration(integer) anim.setEasing(easingFunction) anim.setEndAction(runnable) // Animation overlap between entries anim.setOverlap(float) // Animation starting point anim.setStartPoint(float, float) // Include alpha transition anim.setAlpha(int) // Starts animation chart.animate(animation)
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!


