1. 程式人生 > >HelloCharts 之餅狀圖使用

HelloCharts 之餅狀圖使用

註釋很詳細,直接上程式碼,上圖
<img src="https://img-blog.csdn.net/20160615133714450?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
 private PieChartView chart;
    private PieChartData data;
    private boolean hasLabels = true;
    private boolean hasLabelsOutside = true;
    private boolean hasCenterCircle = true;
    private boolean hasCenterText1 = true;//環形中間的文字1
    private boolean hasCenterText2 = false;
    private boolean isExploded = true;
    private boolean hasLabelForSelected = true;
    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      /*  當然也可以在java程式碼中直接建立:
        LineChartView chart = new LineChartView(context);
        layout.addView(chart);*/
        initViews();
        initDates();
    }

    private void initDates() {
        generateData();
    }

    private void initViews() {
        chart=(PieChartView)findViewById(R.id.chart);
        chart.setOnValueTouchListener(new ValueTouchListener());//新增點選事件
        chart.setCircleFillRatio(0.9f);//設定圖所佔整個view的比例  當有外面的資料時使用,防止資料顯示不全
        btn=(Button)findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                prepareDataAnimation();//更新資料,並新增動畫
            }
        });
    }

    /**
     * 生成資料
     */
    private void generateData() {
        int numValues = 10;//分成的塊數

        List<SliceValue> values = new ArrayList<SliceValue>();
        for (int i = 0; i < numValues; ++i) {
            SliceValue sliceValue = new SliceValue(20.0f,ChartUtils.pickColor());//每一塊的值和顏色,圖示根據值自動進行比例分配
            values.add(sliceValue);
        }
        data = new PieChartData(values);
        data.setHasLabels(true);//顯示資料
        data.setHasLabelsOnlyForSelected(false);//不用點選顯示佔的百分比
        data.setHasLabelsOutside(true);//佔的百分比是否顯示在餅圖外面
        data.setHasCenterCircle(true);;//是否是環形顯示
        data.setCenterCircleScale(0.5f);////設定環形的大小級別
        data.setValueLabelBackgroundColor(Color.TRANSPARENT);////設定值得背景透明
        data.setValueLabelBackgroundEnabled(false);//資料背景不顯示
        data.setValueLabelsTextColor(Color.BLACK);

        //data.setValues(values);//填充資料
        if (isExploded) {
            data.setSlicesSpacing(1);//設定間隔為0
        }

        if (hasCenterText1) {
            data.setCenterText1("Hello!");

            // Get roboto-italic font.
      //      Typeface tf = Typeface.createFromAsset(MainActivity.this.getAssets(), "Roboto-Italic.ttf");//設定字型
       //   data.setCenterText1Typeface(tf);

            // Get font size from dimens.xml and convert it to sp(library uses sp values).
            data.setCenterText1FontSize(ChartUtils.px2sp(getResources().getDisplayMetrics().scaledDensity,
                    (int) getResources().getDimension(R.dimen.pie_chart_text1_size)));
            data.setCenterText1Color(Color.BLACK);////設定值得顏色*/
        }

        if (hasCenterText2) {
            data.setCenterText2("Charts (Roboto Italic)");

            Typeface tf = Typeface.createFromAsset(MainActivity.this.getAssets(), "Roboto-Italic.ttf");

            data.setCenterText2Typeface(tf);
            data.setCenterText2FontSize(ChartUtils.px2sp(getResources().getDisplayMetrics().scaledDensity,
                    (int) getResources().getDimension(R.dimen.pie_chart_text2_size)));
        }

        chart.setPieChartData(data);
    }


    /**
     * To animate values you have to change targets values and then call}
     * method(don't confuse with View.animate()).
     */
    private void prepareDataAnimation() {
        for (SliceValue value : data.getValues()) {
            value.setTarget((float) Math.random() * 30 + 15);//更新資料
        }
        chart.startDataAnimation();
    }


    private class ValueTouchListener implements PieChartOnValueSelectListener {

        @Override
        public void onValueSelected(int arcIndex, SliceValue value) {
            Toast.makeText(MainActivity.this, "Selected: " + value, Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onValueDeselected() {
            // TODO Auto-generated method stub

        }

compile 'com.github.lecho:hellocharts-library:[email protected]'
<pre style="font-family: 宋體; font-size: 9pt; background-color: rgb(255, 255, 255);">maven { url <span style="color:#008000;"><strong>"https://jitpack.io" </strong></span>}


相關推薦

HelloCharts 使用

註釋很詳細,直接上程式碼,上圖<img src="https://img-blog.csdn.net/20160615133714450?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fonts

HelloCharts圖表庫

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andro

Android 折線hellocharts

color佈局檔案<color name="cash">#C0FF8C</color> <color name="wechat">#FFF78C</color> <color name="alipay">#FFD08

Matplotlib基本圖形

當前 font 技術分享 半徑 名稱 plot 對象 abs num Matplotlib基本圖形之餅狀圖 餅狀圖特點:餅狀圖顯示一個數據系列中各項大小與各項總和的比例餅狀圖的數據點顯示為整個餅狀圖的百分比 示例代碼 import os import time impor

matplotlib

import matplotlib.pyplot as plt labels = 'A', 'B', 'C', 'D' fracs = [35, 20, 45, 10] plt.pie(x=fra

echarts(bar)、(pie)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>echartsLineTest</title>

HelloCharts圖表庫

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" an

ECharts 折線

1.柱狀圖 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>柱狀圖</title> &

Android玩轉MPAndroidChart讓(折線、柱形、雜湊、雷達)優雅的舞動

package com.example.chenyu.mpandroidcharttest; import android.app.Fragment; import android.graphics.Color; import android.os.Bundle; import android.suppor

highcharts,折線組合顯示

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title&

hellocharts圖表外掛---

弄出來的效果圖為: 不廢話,直接上程式碼了: 1.佈局檔案: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.a

highcharts入門Pie:如何讓Pie的圖例內顯示百分比(轉)

有很多人都在詢問如何在highcharts的pie 餅狀圖內顯示百分比,通過不斷琢磨最後得出了一個結論,只需要簡單配置即可實現這樣一個需求。 完整核心程式碼如下所示: $(function () { var chart; //

使用css3制作正方形、三角形、扇形和

radi spa over pointer tran ima 得到 lin 引入 1.利用邊框制作正方形 如果將盒容器的width和height設置為0,並為每條邊設置一個較粗的width值和彼此不同的顏色,最終會得到四個被拼接在一起三角形,它們分別指向不同的顏色。 htm

JavaScript+svg繪制的一個

圖例 n) attribute 數字類型 XML 用戶 h+ htm type svg參考:https://www.w3.org/TR/SVG/<body onload=‘document.body.appendChild( pieChart([12,23,34

PHP畫矩形,橢圓,圓,畫橢圓弧 ,

tro lips ade inpu 統計 起點 com eth func 1:畫矩形: imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $col ) imagere

柱形JavaScript

column 註意 文件 label max number span item pointf <script type="text/javascript"> $(function () { $(‘#container_2‘).highcharts({

java代碼實現highchart與數據庫數據結合完整案例分析(一)---

隱藏 des log cred 數據庫數據 idt string 時間 input 作者原創:轉載請註明出處 在做項目的過程中,經常會用到統計數據,同時會用到highchart或echart進行數據展示,highchart是外國開發的數據統計圖插件, echa

R圖表_

legend 之間 lock 圖標 圖片 explode nds percent 統計 R編程語言中有許多庫用來創建圖表。餅狀圖是以不同顏色的圓的切片表示的值。這些切片被標記,並且每個切片對應的數字也在圖表中表示。 在R中,使用將正數作為向量輸入的pie()函數創建餅狀圖。

第166天:canvas繪制動畫

padding new gree component adding 文本 add function 填充 canvas繪制餅狀圖動畫 1、HTML 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head

[Python Study Notes]繪制

usr 防止 bar .py height round style number quic ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘