代码之家  ›  专栏  ›  技术社区  ›  Shadow

通过在chart graphview android中绘制每个点来设置图形动画

  •  0
  • Shadow  · 技术社区  · 7 年前

    我正在使用 GraphView 我需要实时同时显示图形点。但问题是,它正在完整地显示图形。但我的要求是,它应该同时绘制图形。

    根据 suggested one ,我根据我的要求进行了修改,但它没有显示为实时图表。

    public class MainActivity extends AppCompatActivity {
        private LineGraphSeries<DataPoint> mSeries1;
        private Runnable mTimer1;
        private final Handler mHandler = new Handler();
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            GraphView graph = (GraphView) findViewById(R.id.graph);
            mSeries1 = new LineGraphSeries<>(generateData());
            graph.addSeries(mSeries1);
        }
    
        private DataPoint[] generateData() {
           DataPoint[] dataPoint= new DataPoint[]{
                   new DataPoint(0, 1),
                   new DataPoint(1, 5),
                   new DataPoint(2, 4),
                   new DataPoint(3, 6),
                   new DataPoint(4, 8),
                   new DataPoint(5, 10),
           };
           return dataPoint;
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            mTimer1 = new Runnable() {
                @Override
                public void run() {
                    mSeries1.resetData(generateData());
                    mHandler.postDelayed(this, 300);
                }
            };
            mHandler.postDelayed(mTimer1, 300);
        }
        @Override
        public void onPause() {
            mHandler.removeCallbacks(mTimer1);
            super.onPause();
        }
    }
    

    在Xml中:

    <com.jjoe64.graphview.GraphView
        android:layout_width="match_parent"
        android:layout_height="200dip"
        android:id="@+id/graph" />
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   Parth Suthar    7 年前

    https://github.com/PhilJay/MPAndroidChart

    将此库用于图形。它有动画。

        2
  •  0
  •   Jantzilla    7 年前

    确保包含以下方法,以便每次添加新数据时,图形都会滚动到末尾。

    附录数据

    public void appendData(E dataPoint,
                           boolean scrollToEnd,
                           int maxDataPoints)
    

    参数:

    数据点 -值值的顺序必须正确!x值必须为ASC。首先是最低x值,至少是最高x值。

    滚动结束 -true=>graphview将滚动到末尾(maxX)

    最大数据点 -如果达到最大数据计数,最旧的数据值将丢失,以避免内存泄漏