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

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

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

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

Ответы [ 4 ]

45 голосов
/ 02 ноября 2010

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

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

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

ChartDemo / layout / xy_chart.xml рядом со строкой 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.Ява возле линии 147

if (mChartView != null) {
  mChartView.repaint();
}
15 голосов
/ 19 ноября 2010

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

8 голосов
/ 30 мая 2011

Вы можете написать свой 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();
      }
    }
2 голосов
/ 30 июля 2013

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

  1. achartengine-1.1.0-demo-source.zip Исходный код демонстрационного проекта AChartEngine 1.1.0. 15 мая 15 мая 168 КБ 8149
  2. achartengine-1.1.0-javadocs.zip Документация по Jhadadoc AChartEngine 1.1.0. 15 мая 15 мая 374 КБ 3610
  3. achartengine-1.1.0.jar Бинарная библиотека сборки AChartEngine 1.1.0. 15 мая 15 мая 117 КБ 5264

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

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

    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 будет полезен при дальнейшей глубокой разработке, где вы можете взять справочную информацию для всех графиков

...