Android: Estou usando a Biblioteca Achartengine para obter gráficos, mas não é capaz de integrar a exibição de gráfico do ACHARTENGINE com o Android XML?

StackOverflow https://stackoverflow.com/questions/4062161

  •  27-09-2019
  •  | 
  •  

Pergunta

Meu aplicativo requer biblioteca de gráficos e estou usando a biblioteca de gráficos ACHARTENGINE. Meu aplicativo exige que o gráfico seja apenas 50% da tela e outra parte é usada para exibir outras informações.

É possível ter um arquivo de recursos XML para as APIs do gráfico da ACHARTENGINE e como fazê -lo?

Tentei encontrar um exemplo, mas não o encontrei. É suportado ou não?

Foi útil?

Solução

Esta é uma perguntas frequentes para o ACharTengine. O aplicativo Demo Achartengine está disponível para download aqui: Demonstração de Achartengine

No código -fonte da demonstração, você pode ver um exemplo sobre como incorporar um gráfico em uma visualização existente.

Basicamente, no arquivo do descritor de atividades .xml, definimos o seguinte como um espaço reservado para o gráfico. Obviamente, outros componentes da interface do usuário andam junto com este layout:

ChartDemo/layout/xy_chart.xml próximo à linha 27

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

Definimos uma variável local:

ChartDemo/src/org.achartengine.Chartdemo.demo.Chart/xychartbuilder.java próximo à linha 68

private GraphicalView mChartView;

Nós o instantamos no método onResume () da atividade:

ChartDemo/src/org.achartengine.Chartdemo.demo.Chart/xychartbuilder.java próximo à linha 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();
  }
}

Sempre que novos dados são adicionados (quando o usuário pressiona o botão "Adicionar" no nosso caso, um novo ponto é adicionado na série atual e:

ChartDemo/src/org.achartengine.Chartdemo.demo.Chart/xychartbuilder.java próximo à linha 147

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

Outras dicas

Existem dois conjuntos de APIs em ChartFactory. Para por exemplo. getLineChartView() e getLineChartIntent(). Portanto, o primeiro é usado para obter uma visualização gráfica que pode ser adicionada ao layout personalizada e posteriormente é usada para obter a intenção. No exemplo acima, Dan usou getLineChartView() API que retorna um GraphicalView.

Você pode escrever seu XML assim ...

<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>

E o trecho de código 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();
      }
    }

Então, aqui está um lugar auto -suficiente para encontrar tudo sobre ACHARTENGINE. Que inclui link para download,

  1. ACHARTENGINE-1.1.0-DEMO-SOURCE.ZIP O Código Fonte do Projeto Demo AchartEngine 1.1.0. 15 de maio 15 de maio 168 KB 8149
  2. ACHARTENGINE-1.1.0-JAVADOCS.ZIP O ACHARTENGINE 1.1.0 Javadoc Documentation. 15 de maio 15 de maio 374 KB 3610
  3. ACHARTENGINE-1.1.0.JAR O ACHARTENGINE 1.1.0 biblioteca de compilação binária. 15 de maio 15 de maio 117 KB 5264

Que são mais recentes por enquanto (enquanto publica esta resposta). Agora siga estas etapas fáceis para adicionar um novo arquivo de gráfico:

  • Baixe e adicione ACHARTENGINE-1.1.0.JAR para a seção Lib do seu projeto
  • Agora clique com o botão direito do mouse no arquivo e adicione -o ao caminho, como na imagem

    Add jar to your project

  • Agora, conforme definir em respostas anteriores, adicione o código seguinte à sua classe:

    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();
          }
        }
    
    • Para obter detalhes sobre qualquer classe de achartengineapi, faça o download ACharTengine-1.1.0-Javadocs.zip e aberto clicando em index.html

    • ACHARTENGINE-1.1.0-Demo-source.zip será útil durante o desenvolvimento mais profundo, onde você pode fazer referência para todos os gráficos

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top