Android圖表類庫:WilliamChart

jopen 10年前發布 | 54K 次閱讀 圖表 Android開發 移動開發 WilliamChart

WilliamChart是基于Views的Android圖表類庫,幫助開發者在Android應用中實現折線圖、柱狀圖和堆疊柱狀圖。數值發生變化時圖表也會以動畫的效果發生變化。

At the moment it provides:

  • LineChartView

Demo Screenshot1

  • BarChartView

Demo Screenshot2

  • StackBarChartView

Demo Screenshot3

使用說明:
創建一個新的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)

項目主頁:http://www.baiduhome.net/lib/view/home/1413855326965

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!