Android 优秀图标库MPAndroidChart之柱状图(适应百分之八十项目需求)

  • DO NOT USE, only for backwards compatibility and will be removed in future versions.

  • @param value the value to be formatted

  • @param entry the entry the value belongs to - in e.g. BarChart, this is of class BarEntry

  • @param dataSetIndex the index of the DataSet the entry in focus belongs to

  • @param viewPortHandler provides information about the current chart state (scale, translation, …)

  • @return formatted string label

*/

@Override

@Deprecated

public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {

return getFormattedValue(value);

}

/**

  • Called when drawing any label, used to change numbers into formatted strings.

  • @param value float to be formatted

  • @return formatted string label

*/

public String getFormattedValue(float value) {

return String.valueOf(value);

}

/**

  • Used to draw axis labels, calls {@link #getFormattedValue(float)} by default.

  • @param value float to be formatted

  • @param axis axis being labeled

  • @return formatted string label

*/

public String getAxisLabel(float value, AxisBase axis) {

return getFormattedValue(value);

}

/**

  • Used to draw bar labels, calls {@link #getFormattedValue(float)} by default.

  • @param barEntry bar being labeled

  • @return formatted string label

*/

public String getBarLabel(BarEntry barEntry) {

return getFormattedValue(barEntry.getY());

}

/**

  • Used to draw stacked bar labels, calls {@link #getFormattedValue(float)} by default.

  • @param value current value to be formatted

  • @param stackedEntry stacked entry being labeled, contains all Y values

  • @return formatted string label

*/

public String getBarStackedLabel(float value, BarEntry stackedEntry) {

return getFormattedValue(value);

}

/**

  • Used to draw line and scatter labels, calls {@link #getFormattedValue(float)} by default.

  • @param entry point being labeled, contains X value

  • @return formatted string label

*/

public String getPointLabel(Entry entry) {

return getFormattedValue(entry.getY());

}

/**

  • Used to draw pie value labels, calls {@link #getFormattedValue(float)} by default.

  • @param value float to be formatted, may have been converted to percentage

  • @param pieEntry slice being labeled, contains original, non-percentage Y value

  • @return formatted string label

*/

public String getPieLabel(float value, PieEntry pieEntry) {

return getFormattedValue(value);

}

/**

  • Used to draw radar value labels, calls {@link #getFormattedValue(float)} by default.

  • @param radarEntry entry being labeled

  • @return formatted string label

*/

public String getRadarLabel(RadarEntry radarEntry) {

return getFormattedValue(radarEntry.getY());

}

/**

  • Used to draw bubble size labels, calls {@link #getFormattedValue(float)} by default.

  • @param bubbleEntry bubble being labeled, also contains X and Y values

  • @return formatted string label

*/

public String getBubbleLabel(BubbleEntry bubbleEntry) {

return getFormattedValue(bubbleEntry.getSize());

}

/**

  • Used to draw high labels, calls {@link #getFormattedValue(float)} by default.

  • @param candleEntry candlestick being labeled

  • @return formatted string label

*/

public String getCandleLabel(CandleEntry candleEntry) {

return getFormattedValue(candleEntry.getHigh());

}

}

复制代码

第四步:MyValueFormatter

public class MyValueFormatter extends ValueFormatter{

private final DecimalFormat mFormat;

private String suffix;

public MyValueFormatter(String suffix) {

mFormat = new DecimalFormat(“0000”);

this.suffix = suffix;

}

@Override

public String getFormattedValue(float value) {

return mFormat.format(value) + suffix;

}

@Override

public String getAxisLabel(float value, AxisBase axis) {

if (axis instanceof XAxis) {

return mFormat.format(value);

} else if (value > 0) {

return mFormat.format(value) + suffix;

} else {

return mFormat.format(value);

}

}

}

复制代码

第五步:MainAcyivity

package detongs.hbqianze.him.linechart;

import android.os.Bundle;

import android.util.Log;

import android.view.WindowManager;

import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import com.github.mikephil.charting.charts.BarChart;

import com.github.mikephil.charting.components.XAxis;

import com.github.mikephil.charting.components.YAxis;

import com.github.mikephil.charting.data.BarData;

import com.github.mikephil.charting.data.BarDataSet;

import com.github.mikephil.charti

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

ng.data.BarEntry;

import com.github.mikephil.charting.interfaces.datasets.IBarDataSet;

import com.github.mikephil.charting.interfaces.datasets.IDataSet;

import com.github.mikephil.charting.utils.ColorTemplate;

import java.util.ArrayList;

import detongs.hbqianze.him.linechart.chart.MyValueFormatter;

import detongs.hbqianze.him.linechart.chart.ValueFormatter;

public class MainActivity extends AppCompatActivity {

private BarChart chart;

private TextView te_cache;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.activity_main);

chart = findViewById(R.id.chart1);

te_cache = findViewById(R.id.te_cache);

chart.getDescription().setEnabled(false);

//设置最大值条目,超出之后不会有值

chart.setMaxVisibleValueCount(60);

//分别在x轴和y轴上进行缩放

chart.setPinchZoom(true);

//设置剩余统计图的阴影

chart.setDrawBarShadow(false);

//设置网格布局

chart.setDrawGridBackground(true);

//通过自定义一个x轴标签来实现2,015 有分割符符bug

ValueFormatter custom = new MyValueFormatter(" ");

//获取x轴线

XAxis xAxis = chart.getXAxis();

//设置x轴的显示位置

xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);

//设置网格布局

xAxis.setDrawGridLines(true);

//图表将避免第一个和最后一个标签条目被减掉在图表或屏幕的边缘

xAxis.setAvoidFirstLastClipping(false);

//绘制标签 指x轴上的对应数值 默认true

xAxis.setDrawLabels(true);

xAxis.setValueFormatter(custom);

//缩放后x 轴数据重叠问题

xAxis.setGranularityEnabled(true);

//获取右边y标签

上一篇:Python-列表特点and创建


下一篇:pat甲级World_Cup_Betting 1011世界杯投注