(AChartEngine) Как установить коэффициент масштабирования по умолчанию? Как установить собственный стиль шрифта?

Я использую AChartEngine с моим проектом Android.

У меня есть 2 вопроса, когда я реализую гистограмму.

Первый вопрос Вот моя гистограмма, когда я только что запустил эмулятор.

первая картинка

ac

Кажется, он работает отлично, но вид выглядит лучше, когда я нажимаю кнопку уменьшения масштаба на правой нижней панели масштабирования.

вторая картинка

gjj

Я хочу, чтобы диаграмма отображалась так, но я не хочу нажимать кнопку масштабирования каждый раз, когда я отображаю диаграмму. Могу ли я установить коэффициент масштабирования по умолчанию? Поэтому, когда я запускаю эмулятор, диаграмма будет отображаться как второе изображение мгновенно.

Вот мой код

    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)");

Второй вопрос Как реализовать на диаграмме мой пользовательский стиль шрифта (файл стиля шрифта хранится в папке ресурсов)? Я нашел только этот метод, но он не работает.

mRenderer.setTextTypeface(typefaceName, style);

Заранее спасибо :)


person Coco Tan    schedule 04.08.2012    source источник


Ответы (2)


Ответ на ваш второй вопрос

сначала загрузите ttf-файл нужного шрифта из сети, затем создайте папку с именем «активы», под ней еще одну папку «шрифты», поместите файл .ttf в папку шрифтов.

затем в своей деятельности напишите этот код:

Typeface type=Typeface.createFromAssest(getAssets(),"fonts/yourttffile.ttf");

и установите, где вы хотите, скажем, textview

textview.setTypeface(type);
person Mahalakshmi    schedule 01.08.2013

Что касается первого вопроса, AChartEngine пытается наилучшим образом подогнать ваши данные. Однако вы можете настроить это поведение:

mRenderer.setXAxisMin(min);
mRenderer.setXAxisMax(max);
mRenderer.setYAxisMin(0);
mRenderer.setYAxisMax(40);

Что касается второго вопроса, я думаю, вам следует сначала изучить, как добавить собственный шрифт в обычное приложение для Android, а затем он может работать и в AChartEngine.

person Dan D.    schedule 04.08.2012
comment
Большое спасибо за первый вопрос :D Что касается второго вопроса, я стараюсь изо всех сил, но не могу. Я думаю, что расширение класса может помочь, но не может; - person Coco Tan; 05.08.2012
comment
открытый класс CustomXYMultipleSeriesRenderer расширяет XYMultipleSeriesRenderer, реализует сериализуемый { частный контекст контекста; частный шрифт REGULAR_TEXT_FONT = Typeface.create(Typeface.SERIF, Typeface.NORMAL); частная строка mTextTypefaceName = REGULAR_TEXT_FONT.toString(); private int mTextTypefaceStyle = Typeface.NORMAL; public CustomXYMultipleSeriesRenderer (Context c) { super(); // TODO Автоматически сгенерированный конструктор stub this.context=c; REGULAR_TEXT_FONT = Typeface.createFromAsset(context.getAssets(), FontName.otf); } public void setCustomTypeFace(Typeface t){ REGULAR_TEXT_FONT = t; } - person Coco Tan; 05.08.2012