Подтвердить что ты не робот

Android: Я использую библиотеку AChartEngine для графиков, но не могу интегрировать графическое представление achartengine с android xml?

Мое приложение требует библиотеки графов, и я использую графическую библиотеку achartengine. Мое приложение требует, чтобы график составлял всего 50% экрана, а другая часть используется для отображения другой информации.

Возможно ли иметь файл ресурсов xml для API-интерфейсов артангенгейна и как это сделать?

Я попытался найти пример, но не нашел его. Поддерживается или нет?

4b9b3361

Ответ 1

Это FAQ для AChartEngine. Демо-приложение AChartEngine можно скачать здесь: демо-версия AChartEngine

В демо-исходном коде вы можете увидеть пример встраивания диаграммы в существующее представление.

В основном, в файле .xml дескриптора активности мы определили следующее в качестве заполнителя для диаграммы. Конечно, другие компоненты пользовательского интерфейса идут вместе с этим макетом:

ChartDemo/layout/xy_chart.xml рядом с Line 27

<LinearLayout
    android:id="@+id/chart"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="horizontal" />

Определим локальную переменную:

ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java около строки 68

private GraphicalView mChartView;

Мы инстанцируем его на метод onResume():

ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java около строки 163

protected void onResume() {
  super.onResume();
  if (mChartView == null) {
    LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
    mChartView = ChartFactory.getLineChartView(this, mDataset,
mRenderer);
    layout.addView(mChartView, new LayoutParams
(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    ...
  } else {
    mChartView.repaint();
  }
}

Когда новые данные добавляются (когда пользователь нажимает кнопку "Добавить" в нашем случае, новая точка добавляется в текущую серию и:

ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java около строки 147

if (mChartView != null) {
  mChartView.repaint();
}

Ответ 2

В ChartFactory есть два набора API-интерфейсов. Напр. getLineChartView() и getLineChartIntent(). Таким образом, прежний используется для получения графического представления, которое может быть добавлено в настраиваемый макет, а затем используется для получения намерения. В приведенном выше примере Дэн использовал API getLineChartView(), который возвращает GraphicalView.

Ответ 3

Вы можете написать свой xml, как это...

  

<LinearLayout 
android:layout_below="@+id/btn"
android:id="@+id/chart" android:orientation="horizontal"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_weight="1">

</LinearLayout>

и фрагмент кода java

   protected void onResume() {
      super.onResume();
      if (mChartView == null) {
        LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
        mChartView = ChartFactory.getBarChartView(this,getBarDemoDataset(values),renderer,Type.DEFAULT);
        layout.addView(mChartView);


      } else {
        mChartView.repaint();
      }
    }

Ответ 4

Итак, вот самодостаточное место, чтобы найти все о AChartEngine. Что включает ссылку для загрузки,

  • achartengine-1.1.0-demo-source.zip Исходный код проекта проекта AChartEngine 1.1.0. 15 мая 15 мая 168 KB 8149
  • achartengine-1.1.0-javadocs.zip Документация javadoc AChartEngine 1.1.0. 15 мая 15 мая 374 KB 3610
  • achartengine-1.1.0.jar Библиотека двоичной сборки AChartEngine 1.1.0. 15 мая 15 мая 117 KB 5264

Последние на данный момент (при публикации этого ответа). Теперь выполните следующие простые шаги, чтобы добавить новый файл диаграммы:

  • Загрузите и добавьте achartengine-1.1.0.jar в раздел вашего проекта
  • Теперь щелкните правой кнопкой мыши по файлу и добавьте его в путь сборки, например, на изображении

    Add jar to your project

  • Теперь, как определить в предыдущих ответах, добавьте следующий код в свой класс:

    private GraphicalView mChartView;
    private XYMultipleSeriesDataset dataset;
    private XYMultipleSeriesRenderer renderer;
    private BarChart.Type type;
    
    
     protected void onResume() {
          super.onResume(); 
          if (mChartView == null) {
            LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
            /*getBarChartView(android.content.Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, BarChart.Type type)
              Creates a bar chart view.*/
            mChartView = ChartFactory.getBarChartView(this, dataset, renderer, type);//tView(this,getBarDemoDataset(values),renderer,Type.DEFAULT);
            layout.addView(mChartView);
          } else {
            mChartView.repaint();
          }
        }
    
    • Чтобы получить подробную информацию о любом классе AChartEngineAPI, загрузите achartengine-1.1.0-javadocs.zip и откройте, нажав в index.html

    • achartengine-1.1.0-demo-source.zip будет полезен во время дальнейшего углубленного развития, где вы можете взять ссылку для всех диаграмм