zoukankan      html  css  js  c++  java
  • Android图表类库:WilliamChart

    WilliamChart是基于Views的Android图表类库,帮助开发者在Android应用中实现折线图、柱状图和堆叠柱状图。数值发生变化时图表也会以动画的效果发生变化。

    At the moment it provides:

    • LineChartView

    Demo Screenshot1

    • BarChartView

    Demo Screenshot2

    • StackBarChartView

    Demo Screenshot3

    使用说明: 
    创建一个新的chart需要继承自ChartView的坐标轴,同时实现一些必要的方法。我觉的这些方法足以让你绘制出任何你想要的效果。 
    xml文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <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"
       />
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // 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(跟上面相同的部分用省略号)

    1
    2
    3
    <com.db.chart.LineChartView
    ...
    />
     
    java代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    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

    1
    2
    3
    4
    5
    <com.db.chart.BarChartView
    ...
    chart:chart_barSpacing="dp"
    chart:chart_setSpacing="dp"
    />

    java代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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的设置

    1
    2
    3
    4
    5
    6
    chart.setOnEntryClickListener(new OnEntryClickListener(){
         @Override
         public void onClick(int setIndex, int entryIndex, Rect entryRect) {
             //Do things
         }
     });

    动画

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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(floatfloat)
    // Include alpha transition
    anim.setAlpha(int)
    // Starts animation
    chart.animate(animation)
     
     

    项目描述:Android library to create charts. — 查看更多内容...


    问题列表:
    #69 Set Dots missing 由 douglasd3  2015-08-19
    #61 Not showing anything at all 由 Ph1b  2015-08-16
    #50 Can I set YAxis Label to right? 由 xu6148152  2015-06-07
    #29 Support CandleStickChart view 由 Archinamon  2015-01-14
    #28 Consider support for pie charts 由 tuliohmendes  2015-07-29
     

    分支代码更新时间:2015-08-16

    开发语言:Java

    ZIP文件下载
  • 相关阅读:
    单向循环列表(Java实现)
    单链表的实现(Java实现)
    二分查找法(Java实现)
    六大排序算法(Java实现)
    学习python第十天
    学习python第九天
    MapNode
    AtomicReference
    AtomicStampedReference
    尾递归(TailRecursion)
  • 原文地址:https://www.cnblogs.com/joey-hua/p/4741555.html
Copyright © 2011-2022 走看看