View绘制扇形图

我们在做类似报表类的app需求的时候,有时候我们需要绘制扇形图来直观的表达各个数据。因为通过Android原生的控件我们是无法直接使用然后绘出一个扇形图的,但是通过继承View我们却可以做到。
下面一步一步介绍如何画出一个扇形。
在画扇形图之前我们需要先确认我们扇形图放置的位置,这边不得不介绍一下RectF。
RectF表示的是一个矩形区域,那么我们扇形的位置大小就可以由RectF来控制,RectF() :构造函数RectF(float left,float top,float right,float bottom)构造了一个指定了4个必要参数的矩形 ,这些参数就是坐标,即矩形的宽width = right - left ,高height = bottom - top;
比如我们确定出一个如下图的矩形区域:则我们需要的参数为:
RectF rectF = new RectF(50,30,150,80);
在这里插入图片描述

这样做我们就可以确定了我们扇形的位置坐标。
接下来开始绘制扇形。
1.新建工程并新建一个继承View的实现类 myview.java
这个实现类主要是两个构造函数和重写onDraw()

public myview(Context context) {
super(context);
}
public myview(Context context,@Nullable AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();//添加画笔
paint.setColor(Color.BLUE);//设置画笔的颜色为蓝色
//圆角矩形
RectF rectF = new RectF(50,30,getWidth()-50,getWidth()-30);
//画扇形
canvas.drawArc(rectF,0,90,true,paint); //第二个参数表示从哪里开始画,第三个参数表示画几度
paint.setAntiAlias(true);
paint.setColor(Color.RED);//重新设置画笔颜色为红色
canvas.drawArc(rectF,90,180,true,paint);
super.onDraw(canvas);
}

2.在我们需要添加扇形图的layout中添加扇形:
<com.example.myview.myview
android:layout_height=“match_parent”
android:layout_width=“match_parent”
android:id="@+id/myview"/>

3.效果如下图:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值