Reputation: 57
I use AChartEngine with my android project.
I have 2 questions when I implement a bar chart.
First question Here is my bar chart when I just run on an emulator.
first picture
It seems work perfectly, but It's view looks better when I press decrease zoom rate button at right-buttom zoom pane.
second picture
I want the chart shows like this but I don't want to click zoom rate button every time I display the chart. Can I set default zoom rate? So when I run on emulator, The chart will be showed like second picture instantly.
Here is my code
XYSeries series1 = new XYSeries("Product Name1");
series1.add(1,15);
XYSeries series2 = new XYSeries("Product Name2");
series2.add(2,35);
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series1);
dataset.addSeries(series2);
XYSeriesRenderer renderer1 = new XYSeriesRenderer();
renderer1.setColor(Color.GREEN);
renderer1.setDisplayChartValues(true);
renderer1.setChartValuesTextSize(20);
XYSeriesRenderer renderer2 = new XYSeriesRenderer();
renderer2.setColor(Color.BLUE);
renderer2.setDisplayChartValues(true);
renderer2.setChartValuesTextSize(20);
XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
mRenderer.addSeriesRenderer(renderer1);
mRenderer.addSeriesRenderer(renderer2);
mRenderer.setAxisTitleTextSize(16);
mRenderer.setChartTitle(chartTitle);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.setAxesColor(Color.WHITE);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.BLACK);
mRenderer.setBarSpacing(-0.7);
mRenderer.setZoomButtonsVisible(true);
mRenderer.setXTitle("Product");
mRenderer.setXLabels(0);
mRenderer.setXAxisMin(0);
mRenderer.setXAxisMax(3);
mRenderer.setYTitle("Calorie (kCal)");
Second question How to implement my custom font style (font style file is keep at asset folder) to the chart? I found only this method but it doesn't work.
mRenderer.setTextTypeface(typefaceName, style);
Thanks in advance :)
Upvotes: 2
Views: 3094
Reputation: 330
The answer for your second question is
first download the ttf file of your required font from net, then create a folder named "assets", under it one more folder "fonts", put the .ttf file inside fonts folder.
then in your activity write this code:
Typeface type=Typeface.createFromAssest(getAssets(),"fonts/yourttffile.ttf");
and set where you want, say textview
textview.setTypeface(type);
Upvotes: 0
Reputation: 32391
For the first question, AChartEngine tries to fit your data the best way possible. However, you can tweak this behavior:
mRenderer.setXAxisMin(min);
mRenderer.setXAxisMax(max);
mRenderer.setYAxisMin(0);
mRenderer.setYAxisMax(40);
For the second question, I think you should first investigate how to add a custom font into a regular Android application and then it may work in AChartEngine too.
Upvotes: 3