Java 如何在Mpandroid饼图中动态添加文本?

Java 如何在Mpandroid饼图中动态添加文本?,java,android,pie-chart,mpandroidchart,Java,Android,Pie Chart,Mpandroidchart,我按照MpAndroid库创建图表。我想在饼图的中心设置动态文本。我正在创建BMI计算器,所以我想在饼图的中心显示BMI值。 这是我用来在饼图中显示文本的代码。 ` ` 请看一看完整的代码。在Oncreate()方法中,我已设置了上面用于设置中心文本的代码,但这显示的是静态文本,如何动态设置中心文本(即BMI的计算值) MainActivity.java public class MainActivity extends AppCompatActivity impleme

我按照MpAndroid库创建图表。我想在饼图的中心设置动态文本。我正在创建BMI计算器,所以我想在饼图的中心显示BMI值。 这是我用来在饼图中显示文本的代码。 `

`

请看一看完整的代码。在
Oncreate()
方法中,我已设置了上面用于设置中心文本的代码,但这显示的是静态文本,如何动态设置中心文本(即BMI的计算值)

MainActivity.java

    public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {

    private RadioGroup radioSexGroup;
    private RadioButton radioSexButton;
    private int selectedId;
    private EditText age;
    private EditText height;
    private EditText weight;
    private TextView result;
    private Spinner height_spinner;
    private Spinner weight_spinner;
    private Button calculate;
    private PieChart mChart;

    String spinner_height; //Height Spinner
    String spinner_weight; //Weight Spinner
    String selected_item1;
    String selected_item2;

    float bmi=0f;

    protected String[] BMIcategory = new String[]
            {
            "Very Severly Underweight", "Severly Underweight", "Underweight", "Normal",
                    "Overweight", "Obese Class I", "Obese Class II", "Obese Class III",
    };




    protected Typeface mTfRegular;
    protected Typeface mTfLight;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        setTitle("BMI Calculator");

        mTfRegular=Typeface.MONOSPACE;
        mTfLight = Typeface.MONOSPACE;
        radioSexGroup = (RadioGroup) findViewById(R.id.radioSex);
        selectedId = radioSexGroup.getCheckedRadioButtonId();
        radioSexButton = (RadioButton) findViewById(selectedId);
        mChart=(PieChart)findViewById(R.id.chart);
        age=(EditText) findViewById(R.id.age);
        height=(EditText) findViewById(R.id.height);
        weight=(EditText) findViewById(R.id.weight);
//        result=(TextView) findViewById(R.id.result);
        height_spinner=(Spinner) findViewById(R.id.height_spinner);
        weight_spinner=(Spinner) findViewById(R.id.weight_spinner);
        calculate=(Button) findViewById(R.id.calculate_button);

        mChart.setBackgroundColor(Color.rgb(76,0,0));
//        moveOffScreen();
        mChart.setUsePercentValues(false);
        mChart.getDescription().setEnabled(false);

        mChart.setDrawCenterText(true);
        mChart.setCenterTextTypeface(mTfLight);

        mChart.setCenterTextColor(Color.WHITE);
        mChart.setCenterTextSize(15f);
        mChart.setCenterText("BMI:"+bmi);

        mChart.setDrawHoleEnabled(true);
        mChart.setHoleColor(Color.rgb(76,0,0));

        mChart.setTransparentCircleColor(Color.rgb(76,0,0));
        mChart.setTransparentCircleAlpha(110);

        mChart.setHoleRadius(65f);
        mChart.setTransparentCircleRadius(68f);
        mChart.setDrawSliceText(false);
        mChart.setDrawEntryLabels(false);

        mChart.setRotationEnabled(false);
        mChart.setHighlightPerTapEnabled(false);

        mChart.setMaxAngle(270f); // HALF CHART
        mChart.setRotationAngle(135f);
//        mChart.setRotation(180f);


//        mChart.setCenterTextOffset(0, -20);

        setData(8, 80);

        mChart.animateY(1400, Easing.EasingOption.EaseInOutQuad);
        mChart.getLegend().setEnabled(false);

        calculate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                calculate();
            }
        });


        set_spinner();

    }

    private void setData(int count, float range) {

        ArrayList<PieEntry> values = new ArrayList<>();

        values.add(new PieEntry(10f,BMIcategory[0]));
        values.add(new PieEntry(15f,BMIcategory[1]));
        values.add(new PieEntry(8f,BMIcategory[2]));
        values.add(new PieEntry(12f,BMIcategory[3]));
        values.add(new PieEntry(5f,BMIcategory[4]));
        values.add(new PieEntry(5f,BMIcategory[5]));
        values.add(new PieEntry(15f,BMIcategory[6]));
        values.add(new PieEntry(10f,BMIcategory[7]));


        PieDataSet dataSet = new PieDataSet(values, "BMI Category");
        dataSet.setSliceSpace(1f);
        dataSet.setSelectionShift(5f);

        // add many colors
        ArrayList<Integer> colors = new ArrayList<Integer>();

        for (int c : ColorTemplate.VORDIPLOM_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.JOYFUL_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.COLORFUL_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.LIBERTY_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.PASTEL_COLORS)
            colors.add(c);

        colors.add(ColorTemplate.getHoloBlue());
        dataSet.setColors(colors);


        //dataSet.setSelectionShift(0f);

        PieData data = new PieData(dataSet);
        data.setDrawValues(false);

        mChart.setData(data);
        mChart.invalidate();
    }


    public void set_spinner(){

        ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this, R.array.height_spinner_array, android.R.layout.simple_spinner_item);
        adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        height_spinner.setAdapter(adapter1);

        height_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                int a = parent.getSelectedItemPosition();
                spinner_height = height_spinner.getSelectedItem().toString();
                if (a == 0) {
                    selected_item1="Meters";
                }
                if (a == 1) {
                    selected_item1="Inches";

                }
                if(a==2)
                {
                    selected_item1="Centimeters";
                }

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // Another interface callback
            }
        });


        ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.weight_spinner_array, android.R.layout.simple_spinner_item);
        adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        weight_spinner.setAdapter(adapter2);
        weight_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                int b = parent.getSelectedItemPosition();
               spinner_weight = weight_spinner.getSelectedItem().toString();
                if(b==0)
                {
                    selected_item2="Kgs";
                }
                if(b==1)
                {
                    selected_item2="Lbs";
                }
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {} } );


    }

    public void calculate() {

        float getHeight, getWeight;

        DecimalFormat df = new DecimalFormat("#0.00");
//        for height in m and weight in kgs

        if (height.getText().toString().equals("")) {
            getHeight = 0f;
        } else {
            getHeight = Float.parseFloat(height.getText().toString());
        }
        if (weight.getText().toString().equals("")) {
            getWeight = 0f;
        } else {
            getWeight = Float.parseFloat(weight.getText().toString());
        }
        if(height.getText().toString().equals("") || weight.getText().toString().equals("") || age.getText().toString().equals(""))
        {
            Toast.makeText(this,"Please Enter All the Values",Toast.LENGTH_SHORT).show();
            return;
        }

        if(selected_item1.equals("Meters"))
        {
            if(selected_item2.equals("Kgs"))
            {
                bmi = getWeight / (getHeight * getHeight);

            }
            if(selected_item2.equals("Lbs"))
            {
                 bmi = (getWeight*0.453592f) / (getHeight * getHeight);
            }
        }
        if(selected_item1.equals("Inches"))
        {
            if(selected_item2.equals("Kgs"))
            {
                bmi = (getWeight*318.87517f) / (getHeight * getHeight);

            }
            if(selected_item2.equals("Lbs"))
            {
                bmi = (getWeight*703f) / (getHeight * getHeight);
            }

        }
        if(selected_item1.equals("Centimeters"))
        {
            if(selected_item2.equals("Kgs"))
            {
                 bmi = (getWeight*10000) / (getHeight * getHeight);
            }
            if(selected_item2.equals("Lbs"))
            {
                bmi=(getWeight*0.453592f*10000) / (getHeight * getHeight);
            }
        }
//        result.setText("Your BMI is " + df.format((double)bmi));



    }


    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }



}
public类MainActivity扩展了AppCompatActivity
实现NavigationView.OnNavigationItemSelectedListener{
私人放射组RadioexGroup;
专用RadioButton RadioExButton;
私有int-selectedId;
私人编辑时代;
文本高度;
私有文本权重;
私有文本视图结果;
专用微调器高度\微调器;
私人纺纱机重量_纺纱机;
私有按钮计算;
私人皮查特·麦克哈特;
字符串微调器\u height;//高度微调器
字符串微调器\u weight;//权重微调器
所选字符串_item1;
所选字符串_item2;
浮动bmi=0f;
受保护字符串[]类别=新字符串[]
{
“严重体重不足”、“严重体重不足”、“体重不足”、“正常”,
“超重”、“肥胖一级”、“肥胖二级”、“肥胖三级”,
};
保护字体MTF规则;
保护字体;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
setTitle(“体重指数计算器”);
mTfRegular=字体.MONOSPACE;
mTfLight=字体.MONOSPACE;
RadioExGroup=(RadioGroup)findViewById(R.id.RadioEx);
selectedId=RadioExGroup.getCheckedRadioButtonId();
RadioExButton=(RadioButton)findViewById(selectedId);
mChart=(PieChart)findViewById(R.id.chart);
年龄=(EditText)findViewById(R.id.age);
高度=(EditText)findViewById(R.id.height);
权重=(EditText)findViewById(R.id.weight);
//结果=(TextView)findViewById(R.id.result);
高度\u微调器=(微调器)findViewById(R.id.height\u微调器);
权重微调器=(微调器)findViewById(R.id.weight\u微调器);
计算=(按钮)findViewById(R.id.calculate_按钮);
mChart.setBackgroundColor(Color.rgb(76,0,0));
//移动屏幕外();
mChart.setUsePercentValues(假);
mChart.getDescription().setEnabled(false);
mChart.setDrawCenterText(真);
mChart.setCenterTextTypeface(mTfLight);
mChart.setCenterTextColor(Color.WHITE);
mChart.setCenterTextSize(15f);
mChart.setCenterText(“BMI:+BMI”);
mChart.setDrawholeeEnabled(真);
mChart.setHoleColor(Color.rgb(76,0,0));
mChart.setTransparentCircleColor(Color.rgb(76,0,0));
mChart.setTransparentCircleAlpha(110);
麦克哈特·塞托莱拉迪乌斯(65f);
mChart.setTransparentCircleRadius(68f);
mChart.setDrawSliceText(false);
mChart.SetDrawentryLables(假);
mChart.setRotationEnabled(错误);
mChart.SetHighlights不允许(错误);
mChart.setMaxAngle(270f);//半图
麦克哈特旋转角度(135f);
//麦克哈特旋转设置(180f);
//mChart.setCenterTextOffset(0,-20);
setData(8,80);
麦克哈特·阿尼泰(1400,Easing.EasingOption.EaseInOutQuad);
mChart.getLegend().setEnabled(false);
calculate.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
计算();
}
});
设置_微调器();
}
私有void setData(整数计数、浮动范围){
ArrayList值=新的ArrayList();
添加(新条目(10f,类别[0]);
添加(新条目(15f,BMI类别[1]);
添加(新条目(8f,BMI类别[2]);
添加(新条目(12f,BMI类别[3]);
添加(新条目(5f,BMI类别[4]);
添加(新条目(5f,BMI类别[5]);
添加(新条目(15f,BMI类别[6]);
添加(新条目(10f,BMI类别[7]);
PieDataSet=新的PieDataSet(值,“BMI类别”);
dataSet.SetLiceSpace(1f);
dataSet.setSelectionShift(5f);
//添加许多颜色
ArrayList colors=新的ArrayList();
for(int c:ColorTemplate.VORDIPLOM_COLORS)
添加(c);
for(int c:ColorTemplate.journy_COLORS)
添加(c);
用于(int c:ColorTemplate.color\u颜色)
添加(c);
for(int c:ColorTemplate.LIBERTY_COLORS)
添加(c);
用于(int c:ColorTemplate.PASTEL_COLORS)
添加(c);
添加(ColorTemplate.getHoloBlue());
dataSet.setColors(颜色);
//dataSet.setSelectionShift(0f);
PieData数据=新的PieData(数据集);
data.setDrawValue(false);
mChart.setData(数据);
mChart.invalidate();
}
公共无效集_微调器(){
ArrayAdapter adapter1=ArrayAdapter.createFromResource(这是R.array.height\u spinner\u array,android.R.layout.simple\u spinner\u项);
adapter1.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
高度微调器设置适配器(适配器1);
高度微调器.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共位置(AdapterView父项、视图、整数位置、长id){
int a=parent.getSelectedItemPo
    public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {

    private RadioGroup radioSexGroup;
    private RadioButton radioSexButton;
    private int selectedId;
    private EditText age;
    private EditText height;
    private EditText weight;
    private TextView result;
    private Spinner height_spinner;
    private Spinner weight_spinner;
    private Button calculate;
    private PieChart mChart;

    String spinner_height; //Height Spinner
    String spinner_weight; //Weight Spinner
    String selected_item1;
    String selected_item2;

    float bmi=0f;

    protected String[] BMIcategory = new String[]
            {
            "Very Severly Underweight", "Severly Underweight", "Underweight", "Normal",
                    "Overweight", "Obese Class I", "Obese Class II", "Obese Class III",
    };




    protected Typeface mTfRegular;
    protected Typeface mTfLight;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        setTitle("BMI Calculator");

        mTfRegular=Typeface.MONOSPACE;
        mTfLight = Typeface.MONOSPACE;
        radioSexGroup = (RadioGroup) findViewById(R.id.radioSex);
        selectedId = radioSexGroup.getCheckedRadioButtonId();
        radioSexButton = (RadioButton) findViewById(selectedId);
        mChart=(PieChart)findViewById(R.id.chart);
        age=(EditText) findViewById(R.id.age);
        height=(EditText) findViewById(R.id.height);
        weight=(EditText) findViewById(R.id.weight);
//        result=(TextView) findViewById(R.id.result);
        height_spinner=(Spinner) findViewById(R.id.height_spinner);
        weight_spinner=(Spinner) findViewById(R.id.weight_spinner);
        calculate=(Button) findViewById(R.id.calculate_button);

        mChart.setBackgroundColor(Color.rgb(76,0,0));
//        moveOffScreen();
        mChart.setUsePercentValues(false);
        mChart.getDescription().setEnabled(false);

        mChart.setDrawCenterText(true);
        mChart.setCenterTextTypeface(mTfLight);

        mChart.setCenterTextColor(Color.WHITE);
        mChart.setCenterTextSize(15f);
        mChart.setCenterText("BMI:"+bmi);

        mChart.setDrawHoleEnabled(true);
        mChart.setHoleColor(Color.rgb(76,0,0));

        mChart.setTransparentCircleColor(Color.rgb(76,0,0));
        mChart.setTransparentCircleAlpha(110);

        mChart.setHoleRadius(65f);
        mChart.setTransparentCircleRadius(68f);
        mChart.setDrawSliceText(false);
        mChart.setDrawEntryLabels(false);

        mChart.setRotationEnabled(false);
        mChart.setHighlightPerTapEnabled(false);

        mChart.setMaxAngle(270f); // HALF CHART
        mChart.setRotationAngle(135f);
//        mChart.setRotation(180f);


//        mChart.setCenterTextOffset(0, -20);

        setData(8, 80);

        mChart.animateY(1400, Easing.EasingOption.EaseInOutQuad);
        mChart.getLegend().setEnabled(false);

        calculate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                calculate();
            }
        });


        set_spinner();

    }

    private void setData(int count, float range) {

        ArrayList<PieEntry> values = new ArrayList<>();

        values.add(new PieEntry(10f,BMIcategory[0]));
        values.add(new PieEntry(15f,BMIcategory[1]));
        values.add(new PieEntry(8f,BMIcategory[2]));
        values.add(new PieEntry(12f,BMIcategory[3]));
        values.add(new PieEntry(5f,BMIcategory[4]));
        values.add(new PieEntry(5f,BMIcategory[5]));
        values.add(new PieEntry(15f,BMIcategory[6]));
        values.add(new PieEntry(10f,BMIcategory[7]));


        PieDataSet dataSet = new PieDataSet(values, "BMI Category");
        dataSet.setSliceSpace(1f);
        dataSet.setSelectionShift(5f);

        // add many colors
        ArrayList<Integer> colors = new ArrayList<Integer>();

        for (int c : ColorTemplate.VORDIPLOM_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.JOYFUL_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.COLORFUL_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.LIBERTY_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.PASTEL_COLORS)
            colors.add(c);

        colors.add(ColorTemplate.getHoloBlue());
        dataSet.setColors(colors);


        //dataSet.setSelectionShift(0f);

        PieData data = new PieData(dataSet);
        data.setDrawValues(false);

        mChart.setData(data);
        mChart.invalidate();
    }


    public void set_spinner(){

        ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this, R.array.height_spinner_array, android.R.layout.simple_spinner_item);
        adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        height_spinner.setAdapter(adapter1);

        height_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                int a = parent.getSelectedItemPosition();
                spinner_height = height_spinner.getSelectedItem().toString();
                if (a == 0) {
                    selected_item1="Meters";
                }
                if (a == 1) {
                    selected_item1="Inches";

                }
                if(a==2)
                {
                    selected_item1="Centimeters";
                }

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // Another interface callback
            }
        });


        ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.weight_spinner_array, android.R.layout.simple_spinner_item);
        adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        weight_spinner.setAdapter(adapter2);
        weight_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                int b = parent.getSelectedItemPosition();
               spinner_weight = weight_spinner.getSelectedItem().toString();
                if(b==0)
                {
                    selected_item2="Kgs";
                }
                if(b==1)
                {
                    selected_item2="Lbs";
                }
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {} } );


    }

    public void calculate() {

        float getHeight, getWeight;

        DecimalFormat df = new DecimalFormat("#0.00");
//        for height in m and weight in kgs

        if (height.getText().toString().equals("")) {
            getHeight = 0f;
        } else {
            getHeight = Float.parseFloat(height.getText().toString());
        }
        if (weight.getText().toString().equals("")) {
            getWeight = 0f;
        } else {
            getWeight = Float.parseFloat(weight.getText().toString());
        }
        if(height.getText().toString().equals("") || weight.getText().toString().equals("") || age.getText().toString().equals(""))
        {
            Toast.makeText(this,"Please Enter All the Values",Toast.LENGTH_SHORT).show();
            return;
        }

        if(selected_item1.equals("Meters"))
        {
            if(selected_item2.equals("Kgs"))
            {
                bmi = getWeight / (getHeight * getHeight);

            }
            if(selected_item2.equals("Lbs"))
            {
                 bmi = (getWeight*0.453592f) / (getHeight * getHeight);
            }
        }
        if(selected_item1.equals("Inches"))
        {
            if(selected_item2.equals("Kgs"))
            {
                bmi = (getWeight*318.87517f) / (getHeight * getHeight);

            }
            if(selected_item2.equals("Lbs"))
            {
                bmi = (getWeight*703f) / (getHeight * getHeight);
            }

        }
        if(selected_item1.equals("Centimeters"))
        {
            if(selected_item2.equals("Kgs"))
            {
                 bmi = (getWeight*10000) / (getHeight * getHeight);
            }
            if(selected_item2.equals("Lbs"))
            {
                bmi=(getWeight*0.453592f*10000) / (getHeight * getHeight);
            }
        }
//        result.setText("Your BMI is " + df.format((double)bmi));



    }


    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }



}
mChart.setCenterText("BMI:" + bmi);
mChart.invalidate();
mChart.setHoleRadius(0.65f);