ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android 饼图的简易化

2019-04-02 10:48:58  阅读:296  来源: 互联网

标签:pieChart private 简易 add import new Android contents


饼图的样板
Java代码

package com.example.it.myapplication;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.InputFilter;
import android.util.DisplayMetrics;
import android.widget.TextView;

import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;

import java.util.ArrayList;
import java.util.List;

public class Main2Activity extends AppCompatActivity {
    
    
    private PieChart pieChart;
    private TextView txt1;
    private TextView txt2;
    private TextView txt3;
    private TextView txt4;
    //颜色集合
    private List<Integer> colors;
    //内容集合
    private List<String> contents;
    //数据值集合
    private List<Float> arrayList;
    //比例集合
    private List<Entry> bili;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        pieChart=findViewById(R.id.bt);
        txt1=findViewById(R.id.txt1);
        txt2=findViewById(R.id.txt2);
        txt3=findViewById(R.id.txt3);
        txt4=findViewById(R.id.txt4);
        PieData pieData=getPieData(4,100);
        show(pieData,pieChart);
    }
    //设置常见的集合属性
    private PieData getPieData(int count,float range)
    {
        colors=new ArrayList<Integer>();
        colors.add(Color.rgb(200,150,200));
        colors.add(Color.rgb(200,120,200));
        colors.add(Color.rgb(200,130,200));
        colors.add(Color.rgb(200,100,200));
    
        contents=new ArrayList<String>();
        contents.add("大巴");
        contents.add("火车");
        contents.add("器材");
        contents.add("历史");
        
        float m1=100;
        float m2=200;
        float m3=300;
        float m4=400;
        arrayList=new ArrayList<Float>();
        arrayList.add(m1);
        arrayList.add(m2);
        arrayList.add(m3);
        arrayList.add(m4);
        
        runOnUiThread(new Runnable(){
            @Override
            public void run() {
                txt1.setText(contents.get(0)+":"+arrayList.get(0));
                txt2.setText(contents.get(1)+":"+arrayList.get(1));
                txt3.setText(contents.get(2)+":"+arrayList.get(2));
                txt4.setText(contents.get(3)+":"+arrayList.get(3));
            }
        });
        
      bili=new ArrayList<>();
      bili.add(new Entry(m1,0));
      bili.add(new Entry(m2,1));
      bili.add(new Entry(m3,2));
      bili.add(new Entry(m4,3));
        PieDataSet pieDataSet=new PieDataSet(bili,null);
        //设置饼图的间距
        pieDataSet.setSliceSpace(0f);
        //设置饼图的颜色
        pieDataSet.setColors(colors);
        //设置饼图选中后的变长
        DisplayMetrics metrics=getResources().getDisplayMetrics();
        float fd=(metrics.densityDpi/160)*5;
        pieDataSet.setSelectionShift(fd);
        PieData pieData=new PieData(contents,pieDataSet);
        return  pieData;
    }
    //设置pieData的一些特效
    private void show(PieData pieData,PieChart pieChart)
    {
        pieChart.setTransparentCircleRadius(64f);
        pieChart.setHoleRadius(60f);
        //添加右下备注
        pieChart.setDescription("");
        //添加文字 在饼图之中
        pieChart.setDrawCenterText(true);
        pieChart.setDrawHoleEnabled(true);
        //设置旋转的初始角度 sRA
        pieChart.setRotationAngle(90);
        //可以手动旋转的开启 sRE
        pieChart.setRotationEnabled(true);
        //显示百分比的开启 sUPV
        pieChart.setUsePercentValues(true);
        //饼图中文字的显示 sCT
        pieChart.setCenterText("Dow Store");
        //设置数据 sDa
        pieChart.setData(pieData);
      //设置饼图
        Legend mLegend=pieChart.getLegend();
        mLegend.setXEntrySpace(7f);
        mLegend.setYEntrySpace(5f);
    
        pieChart.animateXY(1000, 1000);  //设置动画
    }


}

layout代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main2Activity"
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >
        <com.github.mikephil.charting.charts.PieChart
            android:layout_width="250dp"
            android:layout_height="250dp"
            android:id="@+id/bt"
            android:layout_marginTop="20dp"
            >
        </com.github.mikephil.charting.charts.PieChart>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="111"
                android:id="@+id/txt1"
                android:layout_marginTop="20dp"
                android:textSize="20dp"
                android:padding="5dp"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="111"
                android:id="@+id/txt2"
                android:layout_marginTop="20dp"
                android:textSize="20dp"
                android:padding="5dp"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="111"
                android:id="@+id/txt3"
                android:layout_marginTop="20dp"
                android:textSize="20dp"
                android:padding="5dp"
                />
            <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="111"
            android:id="@+id/txt4"
            android:layout_marginTop="20dp"
            android:textSize="20dp"
            android:padding="5dp"
            />
        </LinearLayout>


    </LinearLayout>
</LinearLayout>

架包:
在这里插入图片描述

标签:pieChart,private,简易,add,import,new,Android,contents
来源: https://blog.csdn.net/wh1236666/article/details/88964966

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有