android 画柱状图

来源:互联网 发布:淘宝评价赚钱 编辑:程序博客网 时间:2024/06/03 20:12
package com.example.test;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.graphics.Rect;import android.util.AttributeSet;import android.view.View;public class MyView extends View {    private static final String title = "2014-2017的销售情况";    private static final String content = "来自公司销售的统计数据";    private Paint paint;    public MyView(Context context, AttributeSet attrs) {        super(context, attrs);    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        paint = new Paint();        paint.setColor(Color.BLACK);        paint.setTextSize(30);        //绘制标题        canvas.drawText(title, 100, 30, paint);        //绘制坐标        canvas.drawLine(50, 100, 50, 500, paint);//绘制纵坐标        canvas.drawLine(50, 500, 450, 500, paint);//绘制横坐标        paint.setTextSize(25);  //设置字体的大小        int[] array = {0, 50, 100, 150, 200, 250, 300, 350};        canvas.drawText("单位:万元", 20, 70, paint);        //绘制纵坐标的刻度'-'和数据        for (int i = 0; i < array.length; i++) {            //画纵坐标的刻度横线 "-"            canvas.drawLine(50, 500 - array[i], 54, 500 - array[i], paint);            //画纵坐标的刻度数据            canvas.drawText(array[i]+"", 10, 500 - array[i], paint);        }        //绘制纵坐标的数据  数据之间相隔100        String[] array2 = {"2014年","2015年","2016年","2017年"};        int[] year_array = {0,100,200,300};        for (int i = 0; i < array2.length; i++) {            canvas.drawText(array2[i], year_array[i] + 70, 520, paint);        }        paint.setColor(Color.BLUE);        paint.setStyle(Style.FILL);//填充画笔        //画4个矩形柱状图  注意横坐标之间相隔100        canvas.drawRect(new Rect(90, 500-56, 110, 500), paint);        canvas.drawRect(new Rect(190, 500-100, 210, 500), paint);        canvas.drawRect(new Rect(290, 500-200, 310, 500), paint);        canvas.drawRect(new Rect(390, 500-300, 410, 500), paint);        //为4个矩形图画4个数据  注意横坐标之间相隔100        paint.setColor(Color.RED);        canvas.drawText("56.0", 80, 500-58, paint);        canvas.drawText("100.0", 180, 500-102, paint);        canvas.drawText("200.0", 280, 500-202, paint);        canvas.drawText("300.0", 380, 500-302, paint);        canvas.drawText(content, 80, 560, paint);    }}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <com.example.test.MyView        android:layout_width="fill_parent"        android:layout_height="fill_parent" >    </com.example.test.MyView></LinearLayout>

结果:
这里写图片描述

源码下载地址:
http://download.csdn.net/detail/u013209983/9737762

0 0