Android 折線圖之hellocharts (餅狀圖)餅圖

yijiaodingqiankun發表於2018-05-30
color佈局檔案
<color name="cash">#C0FF8C</color>
<color name="wechat">#FFF78C</color>
<color name="alipay">#FFD08B</color>
<color name="bankcard">#8BEAFD</color>
<color name="membershipcard">#FF8C9C</color>
<color name="coupon">#D94E8A</color>
<color name="discount">#FE9506</color>
string佈局檔案
<string name="CashText">現金</string>
<string name="WeChatText">微信</string>
<string name="AliPayText">支付寶</string>
<string name="BankcardText">銀行卡</string>
<string name="MembershipText">會員卡</string>
<string name="CouponsText">優惠券</string>
<string name="DiscountText">打折</string>

有顏色提示的餅圖佈局
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="8dp"
                android:background="@color/cash" />

            <TextView
                android:id="@+id/textView6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/CashText"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="8dp"
                android:background="@color/wechat" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/WeChatText"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="8dp"
                android:background="@color/alipay" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/AliPayText"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="8dp"
                android:background="@color/bankcard" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/BankcardText"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="8dp"
                android:background="@color/membershipcard" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/MembershipText"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="8dp"
                android:background="@color/coupon" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/CouponsText"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="20dp"
                android:layout_height="8dp"
                android:background="@color/discount" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/DiscountText"
                android:textSize="12sp" />
        </LinearLayout>
    </LinearLayout>

    <lecho.lib.hellocharts.view.PieChartView
        android:id="@+id/sr_pcv"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="4" />

</LinearLayout>

餅圖:控制元件屬性自己設定
<lecho.lib.hellocharts.view.PieChartView
    android:id="@+id/sr_pcv"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="@color/reddish" />

java程式碼中需要設定的引數
    private void initPicChar() {//初始化餅圖
        pieList = new ArrayList<SliceValue>();

        /**
         * 總共的錢數
         */
        Float money_count = Float.parseFloat(trade_money) + parseFloat(trade_weichat_money) + parseFloat(trade_alipay_money) + parseFloat(trade_bank_money) + parseFloat(trade_vip_money) + parseFloat(trade_coupon_money) + parseFloat(discount);

        SliceValue sliceValue = null;
        for (int i = 0; i < listPays.size(); i++) {

            if (listPays.get(i).getName().equals("現金")) {
                float xianjin = Float.parseFloat(trade_money) / money_count * 100;
                //建立一個新的值
                sliceValue = new SliceValue();
                //設定每個扇形區域的值,float型
                sliceValue.setValue(xianjin);
                //設定每個扇形區域的顏色
                sliceValue.setColor(Color.GREEN);
                //設定每個扇形區域的Lable,不設定的話,預設顯示數值
//                sliceValue.setLabel(listPays.get(i).getPrice()+"現金");
            }else if (listPays.get(i).getName().equals("微信")) {
                float weixin = Float.parseFloat(trade_weichat_money) / money_count * 100;
                //建立一個新的值
                sliceValue = new SliceValue();
                //設定每個扇形區域的值,float型
                sliceValue.setValue(weixin);
                //設定每個扇形區域的顏色
                sliceValue.setColor(Color.YELLOW);
                //設定每個扇形區域的Lable,不設定的話,預設顯示數值
//                sliceValue.setLabel("現金");
            }else if (listPays.get(i).getName().equals("支付寶")) {

                float zhifubao = Float.parseFloat(trade_alipay_money) / money_count * 100;
                //建立一個新的值
                sliceValue = new SliceValue();
                //設定每個扇形區域的值,float型
                sliceValue.setValue(zhifubao);
                //設定每個扇形區域的顏色
                sliceValue.setColor(Color.BLUE);
                //設定每個扇形區域的Lable,不設定的話,預設顯示數值
//                sliceValue.setLabel("現金");
            }else if (listPays.get(i).getName().equals("銀行卡")) {
                float yinhangka = Float.parseFloat(trade_bank_money) / money_count * 100;
                //建立一個新的值
                sliceValue = new SliceValue();
                //設定每個扇形區域的值,float型
                sliceValue.setValue(yinhangka);
                //設定每個扇形區域的顏色
                sliceValue.setColor(Color.BLUE);
                //設定每個扇形區域的Lable,不設定的話,預設顯示數值
//                sliceValue.setLabel("現金");
            }else if (listPays.get(i).getName().equals("會員卡")) {
                float huiyuanka = Float.parseFloat(trade_vip_money) / money_count * 100;
                //建立一個新的值
                sliceValue = new SliceValue();
                //設定每個扇形區域的值,float型
                sliceValue.setValue(huiyuanka);
                //設定每個扇形區域的顏色
                sliceValue.setColor(Color.BLACK);
                //設定每個扇形區域的Lable,不設定的話,預設顯示數值
//                sliceValue.setLabel("現金");
            }else if (listPays.get(i).getName().equals("優惠券")) {
                float youhuiquan = Float.parseFloat(trade_coupon_money) / money_count * 100;
                //建立一個新的值
                sliceValue = new SliceValue();
                //設定每個扇形區域的值,float型
                sliceValue.setValue(youhuiquan);
                //設定每個扇形區域的顏色
                sliceValue.setColor(Color.GREEN);
                //設定每個扇形區域的Lable,不設定的話,預設顯示數值
//                sliceValue.setLabel("現金");
            }else if (listPays.get(i).getName().equals("打折")) {
                float dazhe = Float.parseFloat(discount) / money_count * 100;
                //建立一個新的值
                sliceValue = new SliceValue();
                //設定每個扇形區域的值,float型
                sliceValue.setValue(dazhe);
                //設定每個扇形區域的顏色
                sliceValue.setColor(Color.RED);
                //設定每個扇形區域的Lable,不設定的話,預設顯示數值
//                sliceValue.setLabel("現金");
            }

            pieList.add(sliceValue);
        }
        PieChartData data = new PieChartData(pieList);
        data.setHasLabels(true);
        data.setHasLabelsOnlyForSelected(false);
        data.setHasLabelsOutside(true);
        srPcv.setPieChartData(data);//設定餅圖資料
//        srPcv.callTouchListener();
//        srPcv.setChartRotation();
//        srPcv.isChartRotationEnabled();
    }

給折線圖的資料設定背景及顏色:https://blog.csdn.net/chenzheng8975/article/details/78143604
設定點的大小及顏色:https://blog.csdn.net/qq_35563053/article/details/65628813
參考連結:https://blog.csdn.net/u010151514/article/details/52062052

https://blog.csdn.net/u012534831/article/details/51505683

注意:學習還是要動腦子的,不是拿來就能用的。

相關文章