2017/12/19
現在、とあるアプリを作っていてグラフを表示する必要があり、MPAndroidChartという有名なライブラリを使わせてもらっています。
PhilJay/MPAndroidChart
んで、NoDataTextというところに、データが設定されてない状態で表示させたい文章を設定できるんですが、何故かこの文字色がデフォルトでオレンジ色。
mInfoPaint.setColor(Color.rgb(247, 189, 51)); // orange
視認性が悪いため、変えようと思ったのですが、setNoDataTextColor()的なメゾットが見当たらない。
最近これを追加するPull Requestが送られているようですが、反映されておらず。
Chart.javaを見渡してみると、
432: canvas.drawText(mNoDataText, getWidth() / 2, y, mInfoPaint);
の記述を発見。setPaintメゾットを用いて、
Paint p = new Paint();
p.setColor(ContextCompat.getColor(context, R.color.black));
p.setTextSize((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16.0f, getResources().getDisplayMetrics())); //dpでサイズ指定
p.setTextAlign(Paint.Align.CENTER);
pieChart.setPaint(p, Chart.PAINT_INFO);
とすれば解決しました。TextAlignの指定を忘れずに。