中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PieChart 餅圖

發布時間:2020-06-14 20:19:03 來源:網絡 閱讀:315 作者:06peng 欄目:開發技術

圖表網上有很多第三方工具,但是往往都會受到一些限制,于是用canvas畫pieChart.

 

 

  1. Java代碼  
  2.       
  3.          // 定義一些常量         
  4.     int areaX = 1;         
  5.     int areaY = 22;         
  6.     int areaWidth;         
  7.     int areaHight;         
  8.      //pie上的顏色         
  9.     int colors[];          
  10.     //占的比例         
  11.     int percent[];         
  12.     int tempAngle = 0;         
  13.     private Bitmap bitmap;         
  14.     /**        
  15.      * 屏幕中間點的X、Y坐標        
  16.      */        
  17.     private float centerX,centerY;         
  18.         
  19.     /**        
  20.      * 大園半徑        
  21.      */        
  22.     private float bigR;         
  23.     private Canvas canvas;         
  24.     Bitmap OverlayBitmap;         
  25.     /**        
  26.      * 屏幕的寬        
  27.      */        
  28.     private int width;         
  29.         
  30.     /**        
  31.      * 屏幕的高        
  32.      */        
  33.     private int height;         
  34.         
  35.     @Override        
  36.     protected void onDraw(Canvas canvas) {         
  37.         super.onDraw(canvas);         
  38.         this.canvas = canvas;         
  39.         centerX = width / 2;         
  40.         centerY = height / 2;         
  41.         bigR = (width - 80) / 2;         
  42.         areaWidth = width - 2;         
  43.         areaHight = height - 2;         
  44.         Paint paint = new Paint();         
  45.         paint.setColor(Color.RED);         
  46.         paint.setStyle(Style.FILL);         
  47.         paint.setAntiAlias(true);         
  48.         paint.setStrokeWidth(1);         
  49.         
  50.         canvas.save();         
  51.         canvas.rotate(mDegree);      
  52.         canvas.translate(centerX, centerY);               
  53.         for (int j = 0; j < percent.length; j++) {         
  54.              paint.setColor(colors[j]);         
  55.              canvas.drawArc(new RectF(-bigR, -bigR,bigR, bigR), tempAngle,percent[j],         
  56.                       true,paint);tempAngle += percent[j];         
  57.         }         
  58.         canvas.restore();        
  59. }     

 把在餅圖上占的各個部分,由在初始化此view時傳參,代碼便靈活使用

 

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

percent 在餅圖上所占的比例,無論里面有幾個元素,總和都必須是360,不然畫出來是有空缺的.

 

  1. Java代碼  
  2.       
  3.     int mDegree = 0// 偏移量         
  4.     int mPreDegree = 0// 上次偏移量         
  5.     public void calcDegree(boolean bFlag) {         
  6.         if (mDegree >= 360) {         
  7.             mDegree -= 360;         
  8.         }         
  9.         
  10.         if (mDegree < 0) {         
  11.             mDegree += 360;         
  12.         }         
  13.         
  14.         mPreDegree = mDegree;         
  15.     }        
  16.           
  17.        
  18. @Override        
  19. public boolean onKeyDown(int keyCode, KeyEvent event) {         
  20.     // TODO Auto-generated method stub         
  21.         
  22.     switch (keyCode) {         
  23. //順時針轉動      
  24.     case KeyEvent.KEYCODE_DPAD_LEFT:         
  25.         mDegree -= 6;         
  26.         calcDegree(false);         
  27.         
  28.         postInvalidate();         
  29.         break;         
  30. //逆時針轉動      
  31.     case KeyEvent.KEYCODE_DPAD_RIGHT:         
  32.         mDegree += 6;         
  33.         calcDegree(false);         
  34.         
  35.         postInvalidate();         
  36.         break;         
  37.     default:         
  38.         break;         
  39.     }         
  40.         
  41.     return super.onKeyDown(keyCode, event);         
  42. }    

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桐城市| 大荔县| 即墨市| 新泰市| 田林县| 西林县| 柳河县| 阿巴嘎旗| 紫云| 福泉市| 大冶市| 凤城市| 百色市| 怀来县| 荆门市| 康保县| 蕲春县| 望奎县| 霍城县| 海宁市| 壤塘县| 光泽县| 仪陇县| 深州市| 汤阴县| 济源市| 兴业县| 金川县| 澄城县| 富蕴县| 娄烦县| 镇江市| 兰西县| 盘山县| 吉木乃县| 通榆县| 星子县| 慈溪市| 宣城市| 二手房| 吐鲁番市|