このスクリーンショットのように、chartengine グラフに問題があります。
X 軸の下パディングが多すぎて、値が重複しているように見えます (各値の一方の表現は適切なグラフにあり、パンに適切に反応しますが、もう一方はグラフ ビューの下部にありますが、いかなる方法でも操作できません)。
グラフの作成に使用するコードは次のとおりです。
protected void onCreate(Bundle savedInstanceState) {
...
gDataset = new XYMultipleSeriesDataset();
gRenderer = new XYMultipleSeriesRenderer();
gRenderer.setApplyBackgroundColor(true);
gRenderer.setPointSize(10);
chart = new TimeBarChart(gDataset, gRenderer);
graphView = new GraphicalView(this, chart);
graphHolder.addView(graphView);
//Mode is just an internal enum
chart.setDateFormat(curMode == Mode.DAY ? "HH:mm dd.MM.yyyy" : "dd.MM.yyyy");
....
}
そしてそれを移入するには:
...
//some DB stuff goes here, result is the cursor
curSeries = new XYSeries("");
gDataset.addSeries(curSeries);
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.RED);
renderer.setPointStyle(PointStyle.POINT);
gRenderer.addSeriesRenderer(renderer);
while (!result.isAfterLast()) {
.....
curSeries.add(timestamp,value);
....
}
.....
graphView.invalidate();
graphView.repaint();
そして、レイアウト XML でのグラフ ホルダーのビュー定義を次に示します (メイン コンテナーはもちろん RelativeLayout です)。
<LinearLayout
android:id="@+id/graphHolder"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:minHeight="200dp">
</LinearLayout>
いくつかのこと:
- 私は0.7バージョンを使用しています。
- TimeBarChart クラスは、代わりに BarChart を拡張する単純な変更を加えた TimeChart に他なりません。コードは 0.7 リビジョンからコピーされます。とにかく、以前は ChartFactory#getTimeChartView() を使用していましたが、結果は同じだったので、これが問題の原因ではありません。
- 高さレイアウト パラメータが問題を引き起こしているかどうかを確認しようとしましたが、そうではありませんでした。
- GraphHolder は RoboGuice によって注入されます。
- この問題は 2.3 エミュレータで発生しました。
明らかに、私は何か間違ったことをしていますが、私は途方に暮れています。どんな助けでも大歓迎です。
PS。私はそれを achartengine グループに投稿しようとしましたが、モッズは冬の間冬眠しているようです ;)。