2

プロジェクトで AChartengine を使用しています。データベース データを含むユーザー グラフを表示しています。私は実際に AChartEngine の 1.0.0 バージョンを使用しています。

アプリのグラフ表示機能をスレッドに変更したかったのです。

すべて動作しますが... 問題が発生しました。実行可能なスレッドによって表示されるグラフにはズーム機能がありません。

ハンドラーで、GraphicalView が有効になっているかどうかを確認しました。そしてそうです。私は非常に多くのオプションを試しました。これは AChartEngine の問題ですか?

私はこのレンダラーオプションを使用しています:

        renderer.setXLabels(7);
        renderer.setYLabels(10);
        renderer.setLegendHeight(60);
        renderer.setShowGrid(true);
        renderer.setXLabelsAlign(Align.CENTER);
        renderer.setYLabelsAlign(Align.RIGHT);
        renderer.setZoomButtonsVisible(false);
        renderer.setZoomEnabled(true);
        renderer.setExternalZoomEnabled(true);
        renderer.setApplyBackgroundColor(true);
        renderer.setBackgroundColor(Color.WHITE);
        renderer.setLabelsColor(Color.BLACK);
        renderer.setMarginsColor(Color.WHITE);
        renderer.setChartTitle("");
        renderer.setMargins(new int[] { 15, AChartMarginLeft, 20, 15 });
        renderer.setPanLimits(new double[] { x.get(0)[0].getTime(),
                x.get(0)[(ileC - 1)].getTime() + (1 * 24 * 60 * 60 * 1000),
                minvalY, maxY });
        renderer.setZoomLimits(new double[] { x.get(0)[0].getTime(),
                x.get(0)[(ileC - 1)].getTime() + (1 * 24 * 60 * 60 * 1000),
                minvalY, maxY });
        renderer.setPointSize(4);
        renderer.setShowAxes(false);
        renderer.setAxisTitleTextSize(AChartAxisTitleTextSize);
        renderer.setLabelsTextSize(AChartsetLabelsTextSize);
        renderer.setLegendTextSize(AChartsetLegendTextSize);

したがって、ズームが有効になります。

ハンドラーの mChartView は、mChartView でズームが有効になっていることを示しています。

    private final Handler myHandler = new Handler();

final Runnable updateRunnable = new Runnable() {
    public void run() {
        Log.d("updateRunnable","RUNNABLE");
        if (mRenderer.isZoomEnabled()) { 
        Log.d("ZOOM ENABLED","ENABLED");
        } else {
            Log.d("NO","NO ZOOMING");

        }
    }
};

解決

編集:

私の質問に対する答えが見つかりました。私はたくさんのことを試しました。ズーム/パンマージンではありませんでした。この部分をスレッドからハンドラーに移動したところ、ズームが機能するようになりました。この部分がスレッド内にある場合、チャートは問題ありませんでしたが、先ほど言ったように、ズームが機能していません。

mChartView = ChartFactory.getBarChartView(getApplicationContext(),
          ChartFunctions.buildBarDataset(titles, values), 
              renderer,type.DEFAULT);
4

1 に答える 1

0

チャートの値の範囲とまったく同じように見えるいくつかのズーム制限を設定しています。つまり、その範囲外にズームすることはできません。

于 2013-01-26T16:58:41.717 に答える