看到一个不错的UI设计,用代码试着实现了一下
package com.zyf.drawview;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
public class MyView extends View{
    int value1=0;
    int value2=0;
    int value3=0;
    public void setNumber(int value1,int value2,int value3)
    {
        this.value1=value1;
        this.value2=value2;
        this.value3=value3;
        this.postInvalidate();
    }
    public MyView(Context context) {
        super(context);
    }
    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawColor(Color.BLACK);
        Paint paint=new Paint();
        paint.setColor(Color.WHITE);
        paint.setTextSize(50f);
        canvas.drawText("今天",getWidth()/3,50f,paint);
        int width=getWidth();
        int height=getHeight();
        float cx1=width/3;
        float cy1=height/5*2;
        float radius1=cx1-40;
        drawcir(canvas,Color.GREEN,cx1,cy1,radius1,"行走步数",value1+"步");
        float cx2=width/4*3;
        float cy2=height/3;
        float radius2=width/4-50;
        drawcir(canvas,Color.BLUE,cx2,cy2,radius2,"运动时间",value2+"分钟");
        float cx3=width/3*2;
        float cy3=height/5*3;
        float radius3=width/5-30;
        drawcir(canvas,Color.rgb(255,200,255),cx3,cy3,radius3,"热量",value3+"\n卡");
        drawcir(canvas, Color.WHITE, width / 4, height, width / 4 - 80, "", "");
        paint.setColor(Color.GREEN);
        canvas.drawRect(width/4-10,height-150,width/4+10,height-width/4+80,paint);
        paint.setColor(Color.WHITE);
        RectF oval3 = new RectF(width/4-30,height-300,width/4+30,height-150);// 设置个新的长方形
        canvas.drawRoundRect(oval3, 20, 15, paint);//第二个参数是x半径,第三个参数是y半径
        paint.setTextSize(20f);
        canvas.drawText("Home",width/4+50,height-260,paint);
        paint.setColor(Color.GREEN);
        canvas.drawText("Walk",width/4+50,height-100,paint);
        super.onDraw(canvas);
    }
    public void drawcir(Canvas canvas,int color,float cx,float cy,float radius,String text,String t2)
    {
        Paint paint=new Paint();
        paint.setColor(color);
        canvas.drawCircle(cx, cy, radius, paint);
        paint.setTextSize(30f);
        canvas.drawText(text,cx-radius/2,cy-radius-30,paint);
        paint.setColor(Color.WHITE);
        canvas.drawText(t2,cx-30,cy,paint);
    }
}