自定义View-柱形图

XML

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.bwie.xiaqin.zhoukaol0901.MainActivity">

    <com.bwie.xiaqin.zhoukaol0901.MyTestView
        android:id="@+id/test_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</android.support.constraint.ConstraintLayout>

JAVA

package com.bwie.xiaqin.zhoukaol0901;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;

/**
 * Created by lenovo on 2018/9/1.
 */

public class MyTestView extends View {
    private Paint mPaint;

    public MyTestView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
// TODO Auto-generated constructor stub
    }


    public MyTestView(Context context, AttributeSet attrs) {
        super(context, attrs);
// TODO Auto-generated constructor stub
    }


    public MyTestView(Context context) {
        super(context);
// TODO Auto-generated constructor stub
    }


    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        mPaint=new Paint();
        mPaint.setColor(Color.BLACK);
        mPaint.setTextSize(18);
//绘制标题


        canvas.drawText("步行+跑步距离", 20,90, mPaint);
        mPaint.setTextSize(10);
//绘制线
        canvas.drawLine(50, 100, 50, 500, mPaint);//纵坐标
        canvas.drawLine(50, 500, 400, 500, mPaint);//横坐标
//纵坐标的值
        int[] array = { 0, 50, 100, 150, 200, 250, 300, 350 };
        for(int i=0;i<array.length;i++){
//首先绘制分割线
            canvas.drawLine(50, 500-array[i], 54, 500-array[i], mPaint);
//绘制值
            canvas.drawText(array[i]+"", 20, 500-array[i], mPaint);
        }

//横坐标
        String[] array2 = { "周日", "周一", "周二", "周三","周四","周五","周六" };
        for(int i=0;i<array2.length;i++){
            canvas.drawText(array2[i]+"", array[i]+85, 520, mPaint);
        }
        mPaint.setColor(Color.RED);
        mPaint.setStyle(Paint.Style.FILL);
        canvas.drawRect(new Rect(90, 500 - 56, 110, 500), mPaint);
        canvas.drawRect(new Rect(140, 500 - 98, 160, 500), mPaint);
        canvas.drawRect(new Rect(190, 500 - 207, 210, 500), mPaint);
        canvas.drawRect(new Rect(240, 500 - 318, 260, 500), mPaint);
        canvas.drawRect(new Rect(290, 500 - 56, 310, 500), mPaint);
        canvas.drawRect(new Rect(340, 500 - 98, 360, 500), mPaint);
        canvas.drawRect(new Rect(390, 500 - 207, 410, 500), mPaint);
        mPaint.setColor(Color.BLACK);
        canvas.drawText("56", 88, 500 - 58, mPaint);
        canvas.drawText("90", 138, 500 - 100, mPaint);
        canvas.drawText("207", 188, 500 - 209, mPaint);
        canvas.drawText("318", 238, 500 - 320, mPaint);
        canvas.drawText("100", 138, 500 - 100, mPaint);
        canvas.drawText("60", 88, 500 - 58, mPaint);
        canvas.drawText("320", 238, 500 - 320, mPaint);
        mPaint.setColor(Color.RED);
        mPaint.setTextSize(16);


    }
}

MAIN

package com.bwie.xiaqin.zhoukaol0901;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    private MyTestView test_view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        test_view = findViewById(R.id.test_view);
    }
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值