0

DefaultRenderer.setTextTypeface(Typeface)動作していないようですが、これは既知の問題ですか? アプリのどこでもまったく同じ書体を使用しているので、100% 大丈夫です。しかし、それをレンダラーに渡しても何も変わりません。setTextTypeface()標準のシステム フォントを受け入れる他の を使用しても、同様に動作しないようです。

簡単ではありませんが、いくつかのソースコード:

DefaultRenderer renderer = new DefaultRenderer();
renderer.setAntialiasing(true);
renderer.setChartTitle(title);
...
renderer.setTextTypeface(MyApplication.getInstance().font.condensedNormal);
renderer.setShowLabels(true);
...

エラーもメッセージも表示されず、フォントが変更されないだけで、システム フォントは正常に受信されます。

バージョン 1.1.0、私が見つけた最新のもの。

補遺: いくつかのテストの後、問題があるのは PieChart だけです。他の人はフォントを問題なく受け入れているようです。

4

2 に答える 2

2

これが にのみ当てはまることを考えるとPieChart、AChartEngine のバグと言えます。修正されるまで、次の回避策を見つけました。

public class CustomPieChart extends org.achartengine.chart.PieChart {
  private static final long serialVersionUID = 1L;

  public CustomPieChart(CategorySeries dataset, DefaultRenderer renderer) {
    super(dataset, renderer);
  }

  @Override
  protected void drawLabel(Canvas canvas, String labelText, DefaultRenderer renderer, List<RectF> prevLabelsBounds, int centerX, int centerY, float shortRadius, float longRadius, float currentAngle, float angle, int left, int right, int color, Paint paint, boolean line, boolean display) {
    paint.setTypeface(...typeface...);
    super.drawLabel(canvas, labelText, renderer, prevLabelsBounds, centerX, centerY, shortRadius, longRadius, currentAngle, angle, left, right, color, paint, line, display);
  }

  @Override
  protected int drawLegend(Canvas canvas, DefaultRenderer renderer, String[] titles, int left, int right, int y, int width, int height, int legendSize, Paint paint, boolean calculate) {
    paint.setTypeface(...typeface...);
    return super.drawLegend(canvas, renderer, titles, left, right, y, width, height, legendSize, paint, calculate);
  }

  @Override
  public void drawTitle(Canvas canvas, int x, int y, int width, Paint paint) {
    paint.setTypeface(...typeface...);
    super.drawTitle(canvas, x, y, width, paint);
  }
}

次に、を使用する代わりに、次のChartFactoryように手動でインスタンス化します。

view = new GraphicalView(context, new CustomPieChart(dataset, renderer));
于 2013-07-24T12:20:08.390 に答える