Android AChartEngine Settext字体不工作?
Android AChartEngine Settext字体不工作?,android,achartengine,Android,Achartengine,DefaultRenderer.setTextTypeface(Typeface)似乎不起作用,这是已知的问题吗?在我的应用程序中,我到处都使用相同的字体,所以100%没问题。但如果我将其传递给渲染器,则不会发生任何更改。使用另一个接受标准系统字体的setTextTypeface(),似乎也不起作用 一些源代码,尽管它不简单: DefaultRenderer renderer = new DefaultRenderer(); renderer.setAntialiasing(true); ren
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有问题。其他人似乎完全接受这种字体。考虑到这只适用于
PieChart
,我想我可以说这是AChartEngine中的一个bug。在修复之前,我找到了以下解决方法:
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);
}
}
考虑到这只适用于
PieChart
,我想我可以说这是AChartEngine中的一个bug。在修复之前,我找到了以下解决方法:
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);
}
}
这是在
achartengine-1.1.0.jar中更新的新功能
通过设置字体对象更改文本字体
新方法的加入
public void setTextTypeface(android.graphics.Typeface typeface)
// Sets the text typeface.
Parameters:
typeface - the typeface
因此,请使用您的库并遵循代码-
Typeface myNewFace = Typeface.createFromAsset(getAssets(), "abc.ttf");
renderer.setTextTypeface(myNewFace);
希望这对您有所帮助。这是在achartengine-1.1.0.jar中更新的新功能
通过设置字体对象更改文本字体
新方法的加入
public void setTextTypeface(android.graphics.Typeface typeface)
// Sets the text typeface.
Parameters:
typeface - the typeface
因此,请使用您的库并遵循代码-
Typeface myNewFace = Typeface.createFromAsset(getAssets(), "abc.ttf");
renderer.setTextTypeface(myNewFace);
希望这对你有帮助。那么,我能说些什么呢?:-)首先,您可以从源代码中看到我正在使用此函数。其次,您可以从问题中看到,我正在使用此库版本。第三,您可以从问题中的编辑中看到,一些图表工作正常,只有PieChart有问题…:-)那么,我能说什么呢?:-)首先,您可以从源代码中看到我正在使用此函数。其次,您可以从问题中看到,我正在使用此库版本。第三,您可以从问题中的编辑中看到,一些图表工作正常,只有PieChart有问题…:-)