CakeChartView:饼图,支持静态和动态(手指点击选择),可以单项或多项展开

原博客地址https://blog.csdn.net/weixin_40400031/article/details/108102543


引言:最近沉迷做图表类控件,这次做了一个饼图,支持手指交互和多项展开


github地址:https://github.com/bigdongdong/CakeChartView

 

CakeChartView:饼图,支持手指交互和多项展开

 

动图预览

截图预览

 

项目配置

 

allprojects {
      repositories {
          ...
          maven { url 'https://jitpack.io' }  //添加jitpack仓库
      }
  }
  
  dependencies {
	  implementation 'com.github.bigdongdong:CakeChartView:1.0' //添加依赖
  }

xml :

<com.cxd.cakechartview.CakeChartView
        android:id="@+id/ccv"
        android:padding="30dp"         //padding是饼图选中时偏移的距离
        android:layout_width="300dp"
        android:layout_height="300dp"/>

 java :

List<T> list = new ArrayList<T>();
.........  //填充list
ccv.setAdapter(new CakeAdapter<T>(list) {
            /**
             * 设置是否为静态
             */
            @Override
            public boolean isStatic() {
	    	/**
		* 返回true-则从{@link CakeAdapter#item(Object, int)}中获取选中状态
             	* 返回false-则从手指点击选中获取选中状态
		*/
                return true;
            }

             /**
             * 设置cake的基础样式
             * @return
             */
            @Override
            public BaseConfig base() {
                return new BaseConfig(
                        Color.parseColor("#11111111"),    //底色,影子颜色
                        10,                               //文字大小,单位:sp
                        Color.BLACK,                      //文字颜色
                        0.5f,                             //中心镂空半径与整个cake的半径比
                        0.65f                             //文字所在位置半径与整个cake的半径比
                );
            }

            /**
             * 设置cake中每一块的数据
             * @param T 泛型
             * @param position 坐标
             * @return
             */
            @Override
            public ItemConfig item(T t,int position) {
                return new ItemConfig(
                        t.getColor(),           //从泛型元素中获取单个item的颜色
                        t.getText(),            //从泛型元素中获取单个item的文字
                        t.getRatio(),           //从泛型元素中获取单个item所占整个cake的比例
                        position == 5           //设置当前item的选中状态,【如果isStatic()返回false,则这里设置失效,
											可以选择三个参数的构造函数】
                );
            }
        });
   

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值