android - 为什么 GraphView 不能绘制这些点?如果第二个点的 ax 值小于第一个点
问题描述
如果第二个点的轴值小于第一个点,则 GraphView for android 无法绘制这些点。
<com.jjoe64.graphview.GraphView
android:id="@+id/GPH_graph"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/STL_Graph"/>
DataPoint[] DP_Array = new DataPoint[]{new DataPoint( 0, 0), new DataPoint(-10,10)};
LineH1 = new LineGraphSeries<>(DP_Array);
LineH1.setColor(getResources().getColor(R.color.black));
GPH_graph.addSeries(LineH1);
我想像这张图片一样绘制这些点
解决方案
我用以下代码解决了这个问题:
List<LineGraphSeries<DataPoint>> Series;
Series = SetSeries(DP_Array);
for (int i = 0; i < Series.size(); i++)
{
GPH_graph.addSeries(Series.get(i));
}
List<LineGraphSeries<DataPoint>> SetSeries(DataPoint[] AllData)
{
List<LineGraphSeries<DataPoint>> LineGraphSeriesList = new ArrayList<> ();
DataPoint[] DP;
boolean bol_Forward = true;
int NumForward = 0;
int NumBackward = 0;
for(int i = 1;i < AllData.length;i++)
{
if(AllData[i].getX() >= AllData[i-1].getX())
{
NumForward++;
bol_Forward = true;
}
else
{
NumBackward++;
bol_Forward = false;
}
if(NumBackward>0 & NumForward>0)
{
if(bol_Forward == false)
{
DP = new DataPoint[NumForward + 1];
for (int A = 0;A < NumForward + 1;A++)
{
DP[NumForward - A] = new DataPoint(AllData[i - 1 - A].getX(),AllData[i - 1 - A].getY());
}
LineGraphSeriesList.add(new LineGraphSeries<>(DP));
NumForward = 0;
}
else
{
DP = new DataPoint[NumBackward + 1];
for (int A = 0;A < NumBackward + 1;A++)
{
DP[A] = new DataPoint(AllData[i - 1 - A].getX(),AllData[i - 1 - A].getY());
}
LineGraphSeriesList.add(new LineGraphSeries<>(DP));
NumBackward = 0;
}
Num++;
}
}
return LineGraphSeriesList;
}
推荐阅读
- perl - 如何在我自己的包中重新定义子,但从新包中访问旧包
- typescript - 找不到模块 (ts-jest)
- javascript - 自定义音频播放器搜索栏在 Javascript 中的 OnChange 事件后停止移动
- c# - 无法使用 C# 和 Syncfusion 保存 Excel 工作表
- python - 如何通过cron停止ffmpeg直播到youtube?
- laravel - Laravel 会缓存它的 .env 吗?我有一个奇怪的问题
- docker - 从 NiFi Docker 容器创建 Dockerfile
- r - R wilcoxon 组检验
- python-3.x - 如何将树视图值转换为字典
- reactjs - 如何将参数传递给自定义钩子