Coco Tan
Coco Tan

Reputation: 57

(AChartEngine) How to set default zoom rate? How to set custom font style?

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

ac

It seems work perfectly, but It's view looks better when I press decrease zoom rate button at right-buttom zoom pane.

second picture

gjj

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

Answers (2)

Mahalakshmi
Mahalakshmi

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

Dan D.
Dan D.

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

Related Questions