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?
-
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?
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,
- 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
- ACHARTENGINE-1.1.0-JAVADOCS.ZIP O ACHARTENGINE 1.1.0 Javadoc Documentation. 15 de maio 15 de maio 374 KB 3610
- 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
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