温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PieChart 饼图

发布时间:2020-06-14 20:19:03 阅读:317 作者:06peng 栏目:开发技术
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

图表网上有很多第三方工具,但是往往都会受到一些限制,于是用canvas画pieChart.

Java代码                 // 定义一些常量             int areaX = 1;             int areaY = 22;             int areaWidth;             int areaHight;              //pie上的颜色             int colors[];              //占的比例             int percent[];             int tempAngle = 0;             private Bitmap bitmap;             /**             * 屏幕中间点的X、Y坐标             */            private float centerX,centerY;                     /**             * 大园半径             */            private float bigR;             private Canvas canvas;             Bitmap OverlayBitmap;             /**             * 屏幕的宽             */            private int width;                     /**             * 屏幕的高             */            private int height;                     @Override            protected void onDraw(Canvas canvas) {                 super.onDraw(canvas);                 this.canvas = canvas;                 centerX = width / 2;                 centerY = height / 2;                 bigR = (width - 80) / 2;                 areaWidth = width - 2;                 areaHight = height - 2;                 Paint paint = new Paint();                 paint.setColor(Color.RED);                 paint.setStyle(Style.FILL);                 paint.setAntiAlias(true);                 paint.setStrokeWidth(1);                         canvas.save();                 canvas.rotate(mDegree);              canvas.translate(centerX, centerY);                       for (int j = 0; j < percent.length; j++) {                      paint.setColor(colors[j]);                      canvas.drawArc(new RectF(-bigR, -bigR,bigR, bigR), tempAngle,percent[j],                               true,paint);tempAngle += percent[j];                 }                 canvas.restore();        }     

 把在饼图上占的各个部分,由在初始化此view时传参,代码便灵活使用

Java代码        int[] colors =new int[]{Color.rgb(255068),Color.rgb(422766),Color.rgb(120120120),Color.rgb(2551450)};                int[] percent = new int[]{50,140,100,70};                PieView pieView = new PieView(this,width,height,colors,percent);    

percent 在饼图上所占的比例,无论里面有几个元素,总和都必须是360,不然画出来是有空缺的.

Java代码            int mDegree = 0// 偏移量             int mPreDegree = 0// 上次偏移量             public void calcDegree(boolean bFlag) {                 if (mDegree >= 360) {                     mDegree -= 360;                 }                         if (mDegree < 0) {                     mDegree += 360;                 }                         mPreDegree = mDegree;             }                         @Override        public boolean onKeyDown(int keyCode, KeyEvent event) {             // TODO Auto-generated method stub                     switch (keyCode) {         //顺时针转动          case KeyEvent.KEYCODE_DPAD_LEFT:                 mDegree -= 6;                 calcDegree(false);                         postInvalidate();                 break;         //逆时针转动          case KeyEvent.KEYCODE_DPAD_RIGHT:                 mDegree += 6;                 calcDegree(false);                         postInvalidate();                 break;             default:                 break;             }                     return super.onKeyDown(keyCode, event);         }    

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×