android中怎么画统计图

首先需要看图片,看过图片的才有发言权。效果就是这样的,画的效果还是不错的,能用的请收藏。首先,画折现统计图,画折线统计图的的代码如下。public class TestLineChartView extends View { private boolean noTitle; private float marginLeft;/
摘要由CSDN通过智能技术生成

首先需要看图片,看过图片的才有发言权。




效果就是这样的,画的效果还是不错的,能用的请收藏。


首先,画折现统计图,画折线统计图的的代码如下。


public class TestLineChartView extends View {

    private boolean noTitle;

    private float marginLeft;// 左边距
    private float marginRight;// 右边距
    private float marginTop;// 上边距
    private float marginBottom;//下边距
    private float widthInterval;// 单位宽
    private float heightInterval;// 单位高
    private float viewHeight = 0;// 控件高度
    private float viewWidth = 0;// 控件宽度

    private List<Double> values;// 折线值
    private List<String> dates;// 日期
    private List<String> stringValues = new ArrayList<String>();//折线值String
    private double maxV;// 最大值
    private double minV;// 最小值

    private float valueInterval;// 每格像素的value值
    private List<String> numbers;// 纵坐标

    private int pointNum = 0;// 选中的是哪一个点
    private float textSize = 0;// 字体大小
    private float titleSize;
    private float xSize;
    private float ySize;
    private int fillCircleRadio = 14;// 实心圆的半径
    private int strokeCircleRadio = 16;//空心圆半径
    private int lineSize = 10;
    private int fillPointSize = 5;//实心圆
    private int strokePointSize = 10;//空心圆粗细

    private TextPaint FontPaint;
    private Context mContext;


    // 构造方法
    public TestLineChartView(Context context) {
        this(context, null, 0);
        this.mContext = context;

    }

    public TestLineChartView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
        this.mContext = context;
    }

    public TestLineChartView(Context context, AttributeSet attrs,
                             int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        this.mContext = context;
    }

    /**
     * 设置折线的值
     *
     * @param values 折线值
     * @param dates  日期(七天)
     */
    public void setData(List<Double> values, List<String> dates, boolean noTitle) {

        if (values == null || values.size() == 0 || dates == null || dates.size() == 0) {
            return;
        }


        // 保存传入的参数
        this.values = values;
        this.dates = dates;
        this.noTitle = noTitle;

        reInitData();

        // 重绘
        this.invalidate();

    }

    // 设置字体大小
    public void setTextSize(int textSize, int titleSize, int xSize, int ySize) {
        this.textSize = textSize;
        this.titleSize = titleSize;
        this.xSize = xSize;
        this.ySize = ySize;
    }


    @Override
    protected void onDraw(Canvas canvas) {


        clearCanvas(canvas);// 清空画布
        if (values == null || values.size() == 0 || dates == null || dates.size() == 0) {
            return;
        }
        initData();
        if (!noTitle) {
            drawTitle(canvas);// 画"近七天收益趋势"
        } else {
            marginTop = marginBottom;
        }

        drewTable(can
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值