2

我在我的 android 项目中使用 AChartEngine。

我在实现条形图时有 2 个问题。

第一个问题 这是我刚在模拟器上运行时的条形图。

第一张照片

交流

它似乎工作得很好,但是当我按下右按钮缩放窗格中的降低缩放率按钮时,它的视图看起来更好。

第二张图片

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

提前致谢 :)

4

2 回答 2

3

对于第一个问题,AChartEngine 尝试以最佳方式拟合您的数据。但是,您可以调整此行为:

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

对于第二个问题,我认为您应该首先研究如何将自定义字体添加到常规 Android 应用程序中,然后它也可以在 AChartEngine 中工作。

于 2012-08-04T17:58:43.770 回答
0

你的第二个问题的答案是

首先从网上下载你需要的字体的ttf文件,然后创建一个名为“assets”的文件夹,在它下面还有一个文件夹“fonts”,将.ttf文件放在fonts文件夹中。

然后在您的活动中编写以下代码:

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

并设置你想要的地方,比如 textview

textview.setTypeface(type);
于 2013-08-01T09:37:41.197 回答