首页 > 其他分享 >## 进行开发5

## 进行开发5

时间:2024-02-27 12:33:04浏览次数:31  
标签:## ArrayList add parseColor Color mOriginColors 开发 new 进行

在完成的数据库操作后,自己看到别人的app都有图表,于是自己也尝试学了下安卓中的图表。刚开始学习过程有些坎坷,但学习后发现并没有自己想象的那么难,因为图表是使用第三方库进行创建的,所以自己不用再创建相关的方法,想要实现某种样式,只需要自己调用第三方库中方法,修改相关的设置属性即可。

图表组件MPAndroidChart的简单学习-----制作自己的饼图

如何使用:

方式一、切换到project目录下,在lib目录下导入jar包。 下载和查看源码的网址:https://github.com/PhilJay/MPAndroidChart

方式二、添加依赖(本人比较喜欢这种,方便快捷)V2.2.2是版本号,可替换成最新版本。

~~~
创建布局文件:

 <com.github.mikephil.charting.charts.PieChart
        android:id="@+id/pie_chart"
        android:layout_height="250dp"
        android:layout_width="match_parent"
        />
将饼图的显示和相关设置封装在一个类中

复制代码
public class ChartManager {
    private Activity mContext;
    ArrayList<Integer> mOriginColors=new ArrayList<Integer>();
    public ChartManager(Activity context){
        mContext=context;
        mOriginColors.add(Color.parseColor("#59EA3A"));
        mOriginColors.add(Color.parseColor("#FFFA40"));
        mOriginColors.add(Color.parseColor("#E238A7"));

        mOriginColors.add(Color.parseColor("#8DB42D"));
        mOriginColors.add(Color.parseColor("#3DA028"));
        mOriginColors.add(Color.parseColor("#BFBC30"));
        mOriginColors.add(Color.parseColor("#94256D"));

        mOriginColors.add(Color.parseColor("#66C3E3"));
        mOriginColors.add(Color.parseColor("#39B8E3"));
        mOriginColors.add(Color.parseColor("#0095C6"));
        mOriginColors.add(Color.parseColor("#257995"));
        mOriginColors.add(Color.parseColor("#006181"));
    }


    public void showPieChartAccount (PieChart piechart, String date){
        //数据
        AccountApplication app= (AccountApplication) mContext.getApplication();
        AccountDao dbManager=app.getmDatabasemanager();
        List<AccountItem> incomeAccountList=dbManager.getOutlayStaticsList(date);

        //每个小饼图的内容
        ArrayList<String> xValues=new ArrayList<String>();

        //每个小饼图的实际数据
        ArrayList<Entry> yValues=new ArrayList<Entry>();
        //饼图颜色
        ArrayList<Integer> colors=new ArrayList<Integer>();

        for(int i=0;i<incomeAccountList.size();i++){
            xValues.add(incomeAccountList.get(i).getCategory());
            yValues.add(new Entry((float)incomeAccountList.get(i).getMoney(),i,incomeAccountList.get(i).getCategory()));
            colors.add(mOriginColors.get(i%mOriginColors.size()));
        }

        //y轴的集合
        PieDataSet pieDataset=new PieDataSet(yValues,"");
        //设置各个饼图之间的距离
        pieDataset.setSliceSpace(2f);
        pieDataset.setColors(colors);

        PieData pieData=new PieData(xValues,pieDataset);
        pieData.setValueTextSize(14f);
        pieData.setHighlightEnabled(true);
        // 设置饼块之间的间隔


        piechart.setData(pieData);

        //设置图例
        Legend mLegend=piechart.getLegend();  //设置比例图,不显示
        mLegend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART_CENTER); //最右边显示
        mLegend.setForm(Legend.LegendForm.SQUARE);  //设置比例图的形状,默认式方形
        mLegend.setXEntrySpace(7f);
        mLegend.setYEntrySpace(5f);
        mLegend.setEnabled(true);  //显示比例图即显示小方块


        piechart.setDrawCenterText(true);  //饼状图中间可以添加文字
        piechart.setCenterText("支出总览");  //饼状图中间的文字

        //设置动画效果
        piechart.animateXY(1000,1000); //设置动画

        DisplayMetrics displayMetrics=mContext.getResources().getDisplayMetrics();
        float px=5*(displayMetrics.densityDpi/160f);
        //选中多出的长度
        pieDataset.setSelectionShift(px);
        piechart.invalidate();

    }


}
复制代码
在Java文件中获取组件ID,并从上面的类得到一个饼图,将饼图加载到组件上。

        PieChart pieChart=mRootView_summary.findViewById(R.id.pie_chart);
        ChartManager chartManager=new ChartManager(this.getActivity());
        chartManager.showPieChartAccount(pieChart,app.getCurrentMonth());

 

标签:##,ArrayList,add,parseColor,Color,mOriginColors,开发,new,进行
From: https://www.cnblogs.com/muzhaodi/p/18036640

相关文章

  • 《系统科学方法概论》第五章
    作者在第五章“自组织系统方法”中讲解了自组织系统,作为一种特殊的系统形式,其内部元素通过相互作用和协同,能够自发地形成有序结构,而无需外界指令的干预。在本章中讲到普利高津将系统分为三类:1.孤立系统:即与环境没用物质、能量交换的系统。如篮球中的气体。2.封闭系统:即与外界只......
  • 道路交通安全违法行为记分管理办法-1
    1.公安机关交通管理部门对机动车驾驶人的交通违法行为,除依法给予行政处罚外,实行累积记分制度。2.记分周期为十二个月,满分为12分。记分周期自机动车驾驶人初次领取机动车驾驶证之日起连续计算,或者自初次取得临时机动车驾驶许可之日起累积计算。3.记分达到满分的,机动车驾驶人应当......
  • 道路交通安全违法行为记分管理办法-2
    1.机动车驾驶人有下列交通违法行为之一,一次记12分:(一)饮酒后驾驶机动车的;(二)造成致人轻伤以上或者死亡的交通事故后逃逸,尚不构成犯罪的;(三)使用伪造、变造的机动车号牌、行驶证、驾驶证、校车标牌或者使用其他机动车号牌、行驶证的;(四)驾驶校车、公路客运汽车、旅游客运汽车载人超过......
  • List转Map
    //以userid为主,重复数据不获取,不会抛出异常Map<Long,UserLoginLog>longDateMap=userLoginLogList.stream().collect(Collectors.toMap(UserLoginLog::getUserId,Function.identity(),(key1,key2)->key1));//业务逻辑if(longDateMap.containsKey(listVo.getUserI......
  • 家庭记账本7
    增加页面NoteAdd.vue<template><div><el-formref="form":model="item"label-width="80px"><el-form-itemlabel="金额"><el-inputv-model="item.money"></el-input>......
  • 家庭记账本8
    修改页面NoteUpdate.vue<template><div><el-formref="form":model="item"label-width="80px"><el-form-itemlabel="金额"><el-inputv-model="item.money"></el-input&......
  • 家庭记账本9
    App.vue和main.js<template><divid="app"><router-view/></div></template><stylelang="less">#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antiali......
  • 爬取网页曲线图的后台数据——Python实现
    爬取网页曲线图数据的应用十分广泛。在市场分析领域,投资者可以通过分析金融网站上的股票曲线图数据来了解股市趋势,从而做出更明智的投资决策。在科学研究中,研究人员可以通过爬取科学期刊网站上的曲线图数据来分析实验结果,推动科学进步。在气象领域,气象学家可以通过爬取气象网站上......
  • 记住网格布局,吊打flex布局
    前言网格布局真的现在很流行,当然flex也行,当时吧真的有些布局真的适合网格 让我秘制忘不掉的间距24px的布局,麻了麻了实现边距都是24,且一行只有2个元素,有多行的提供2种布局:grid<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"......
  • 论文阅读-《显著性目标检测中的完整性学习》
    论文摘要尽管当前显著性目标检测已取得重大突破,它们在预测显著区域的"完整性"上仍存在局限性。本文把"完整性"的概念分为微观完整性和宏观完整性两个层面。具体而言,在微观层面上,模型需要找出单个显著目标的所有部分。而在宏观层面上,模型需要发现图片中的所有显著目标。为了达......