自定义UI 绘制饼图

系列文章目录

  1. 自定义UI 基础知识
  2. 自定义UI 绘制饼图
  3. 自定义UI 圆形头像
  4. 自定义UI 自制表盘
  5. 自定义UI 简易图文混排
  6. 自定义UI 使用Camera做三维变换
  7. 自定义UI 属性动画
  8. 自定义UI 自定义布局


前言

这系列的文章主要是基于扔物线的HenCoderPlus课程的源码来分析学习。


创建绘制对象

我们需要创建一个画笔🖌Paint来绘制我们的饼图。

public class PieChart extends View {
   
    // 饼图的半径
    private static final int RADIUS = (int) Utils.dp2px(150);
    // 抗锯齿(可以有效的解决毛边的问题)
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    // 饼图的分布区域
    RectF bounds = new RectF();

	// 系统默认调用的就是这个构造函数
    public PieChart(Context context, @Nullable AttributeSet attrs) {
   
        super(context, attrs);
    }
}

设置布局位置

如果您的视图不需要对其大小进行特殊控制,您只需替换一个方法,即onSizeChanged()。系统会在首次为您的视图分配大小时调用onSizeChanged(),如果视图大小由于任何原因而改变,系统会再次调用该方法。请在onSizeChanged()中计算位置、尺寸以及其他与视图大小相关的任何值,而不要在每次绘制时都重新计算。

摘录自Andorid官方文档:处理布局事件

public class PieChart extends View {
   
    // 饼图的半径
    private static final int RADIUS = (int) Utils.dp2px(150);
    // 抗锯齿(可以有效的解决毛边的问题)
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    // 饼图的分布区域
    RectF bounds = new RectF();

    public PieChart(Context context, @Nullable AttributeSet attrs) {
   
        super(context, attrs);
    }

    /**
     * 在此视图的大小发生变化时调用。
     */
    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
   
        super.onSizeChanged(w, h, oldw, oldh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值