Android自定义View-利用canvas绘制柱状图。
今天项目中用到了柱状图,本想用三方库,最后看了一下,三方库太大,而本身需求又比较简单,故动手自己画一个,记录一下。
目的:
1. 利用canvas绘制所有数据,封装view中,直接引用使用。
2. 可动态设置数据
3. 可设置柱状图间距 宽高
4. 超出屏幕后自动按比例缩放显示
5. …后续继续完善
效果图:
一个简单的自定义VIEW柱状图。
直接上代码:
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.ColorInt;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
/**
* 描述:柱状图View
* 作者:vicent
* 时间:2018/12/25
*/
public class HistogramView extends View {
private static final String TAG = "HistogramView";
/**
* 柱状图L型线的画笔
*/
private Paint linePaint = new Paint();
/**
* 柱状图数据的画笔
*/
private Paint histogramPaint = new Paint();
/**
* 柱状图文字的画笔
*/
private Paint textPaint = new Paint();
/**
* 柱状图数据
*/
private List<Histogram> mList = new ArrayList<>();
/**
* 柱状图L型线的水平长度
*/
private int horizontalLineLength = 0;
/**
* 柱状图L型线的垂直高度
*/
private int verticalLineHight = 0;
/**
* 柱状图水平缩放比例:如果数据量大,按比例缩放显示
*/
private float hScalSize = 1;
/**
* 柱状图垂直缩放比例:如果数据量大,按比例缩放显示
*/
private float wSc