MPAndroidChart ライブラリを使用しています。誰もこの問題を抱えていますか?ラベルを下の位置に置くと、これらはカットされます。
ありがとうございました
MPAndroidChart ライブラリを使用しています。誰もこの問題を抱えていますか?ラベルを下の位置に置くと、これらはカットされます。
ありがとうございました
テキストが長すぎて、ライブラリがラベルの新しい行への「折り返し」をサポートしていないため、これらはカットされています。
凡例のラベルを短くするか、必要な機能を自分で実装する必要があります。
アップデート:
のワード ラップがLegend
サポートされるようになりました。
chart.getLegend().setWordWrapEnabled(true);
ここでは、「Traditional Android Way」による簡単な方法を紹介します。非常に簡単です。私のコードは以下のとおりです。
<LinearLayout
android:id="@+id/i_am_chart_view_container"
...
android:paddingRight="20dp"
android:clipChildren="false"
android:clipToPadding="false"
.../>
padding
コンテナー レイアウトにいくつかを追加するかmargin
、チャート ビューにいくつかを追加し、最後にclipChildren
&clipToPadding
を false に設定するだけです。
以下の結果:
青い領域はパディングまたはマージン領域です。
Legend l = pieChart.getLegend();
l.setPosition(LegendPosition.BELOW_CHART_LEFT);
l.setXEntrySpace(7f);
l.setYEntrySpace(0f);
l.setYOffset(0f);
l.setDirection(LegendDirection.LEFT_TO_RIGHT);
l.setWordWrapEnabled(true);
凡例の値のクリッピングを回避するには、次のコード ブロックを使用します。
Legend legend=lineChart.getLegend();
legend.setWordWrapEnabled(true);
Doc (凡例):
/**
* Should the legend word wrap? / this is currently supported only for:
* BelowChartLeft, BelowChartRight, BelowChartCenter. / note that word
* wrapping a legend takes a toll on performance. / you may want to set
* maxSizePercent when word wrapping, to set the point where the text wraps.
* / default: false
*
* @param enabled
*/
public void setWordWrapEnabled(boolean enabled) {
mWordWrapEnabled = enabled;
}
x 軸ラベルのクリッピングを避けるには、次を使用します
XAxis xAxis = lineChart.getXAxis();
xAxis.setAvoidFirstLastClipping(true);
Doc (x 軸ラベル用):
/**
* if set to true, the chart will avoid that the first and last label entry
* in the chart "clip" off the edge of the chart or the screen
*
* @param enabled
*/
public void setAvoidFirstLastClipping(boolean enabled) {
mAvoidFirstLastClipping = enabled;
}
長い研究の後、私は解決策を見つけました。以下のコードで解決しました。
chart.getLegend().setWordWrapEnabled(true);