Skip to content

yekq/PieChartView

Repository files navigation

PieChartView

Android 可点击扇形图

##效果图:

#Use: Layout

    <ykq.demo.PieChartView.PieChartView
        android:id="@+id/pieChartView"
        android:layout_width="250dp"
        android:layout_height="270dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        app:lableTextSize="16dp"
        app:centreRadius="0dp"
        app:gravity="top"
        app:firstOffset="20dp"
        />

初始化

        chartView.setFanClickAbleData(
                new double[]{75,15,60,24,90},
                new int[]{Color.GRAY,Color.GREEN, Color.DKGRAY,Color.GREEN,Color.BLUE},0.08);

动画

        chartView.setOnFanClick(new OnFanItemClickListener() {
            @Override
            public void onFanClick(final FanItem fanItem) {
                    if (!fanRoateAniamtionStart)
                    {
                        float to;
                        float centre=(fanItem.getStartAngle() *2+ fanItem.getAngle())/2;
                        if (centre>=270)
                        {
                            to=360-centre+90;
                        }else
                        {
                            to=90-centre;
                        }

                        RotateAnimation animation= new RotateAnimation(0,to, chartView.getFanRectF().centerX(),chartView.getFanRectF().centerY());
                        animation.setDuration(800);
                        animation.setAnimationListener(new Animation.AnimationListener() {
                            @Override
                            public void onAnimationStart(Animation animation) {
                                fanRoateAniamtionStart=true;
                            }

                            @Override
                            public void onAnimationEnd(Animation animation) {
                                chartView.setToFirst(fanItem);
                                chartView.clearAnimation();
                                chartView.invalidate();
                                fanRoateAniamtionStart=false;
                                tv_select_item.setText("当前选中:"+ fanItem.getPercent() + "%");
                            }

                            @Override
                            public void onAnimationRepeat(Animation animation) {

                            }
                        });
                        animation.setFillAfter(true);
                        chartView.startAnimation(animation);
                    }
            }
        });

About

Android 可点击扇形图

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages