本项目是一个带动画的饼图,javaapk之前也发布过很多关于其他图表的项目源码,在网站上的图表目录下面,本项目代码注释比较详细,但是用的是property animation 动画效果最低支持3.0.测试的时候貌似在2.3.7跑不起来,用4.2测试的才截图,项目主页https://github.com/oneAcorn/cakeview编译版本4.4.2编码UTF-8依赖android-support-v7-appcompat已经一起打包了。
//setdata方法必须在oncreate里面执行,因为重写了onMeasure,并且根据传入的数据量进行的测量,所以在onCreate没传数据的情况下可能会有问题 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cakeSurfaceView = (CakeSurfaceView) findViewById(R.id.cakeSurfaceView1); List < CakeSurfaceView.CakeValue > cakeValues2 = new ArrayList < CakeSurfaceView.CakeValue > (); cakeValues2.add(new CakeSurfaceView.CakeValue("猫猫猫", 12f, "详细信息")); cakeValues2.add(new CakeSurfaceView.CakeValue("狗狗狗", 0f, "详细信息自动换行")); cakeValues2.add(new CakeSurfaceView.CakeValue("acorn", 24f, "橡果")); cakeValues2.add(new CakeSurfaceView.CakeValue("人人人", 0f)); cakeValues2.add(new CakeSurfaceView.CakeValue("瓜皮", 0f)); cakeValues2.add(new CakeSurfaceView.CakeValue("鸭嘴兽", 1f)); cakeSurfaceView.setData(cakeValues2); //设置饼图信息的显示位置(目前只有bottom模式支持点击动画) cakeSurfaceView.setGravity(Gravity.bottom); //设置饼图信息与饼图的间隔(dp) cakeSurfaceView.setDetailTopSpacing(15); //设置饼图的每一项的点击事件 cakeSurfaceView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(int position) { Toast.makeText(MainActivity.this, "点击:" + position, 0).show(); } }); }
您必须登录才能评论.