zoukankan      html  css  js  c++  java
  • <Android 应用 之路> MPAndroidChart~LineChart

    简介

    MPAndroidChart是PhilJay大神给Android开发者带来的福利。MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时只关注Android版本。

    Wiki

    https://github.com/PhilJay/MPAndroidChart/wiki

    Javadoc

    https://jitpack.io/com/github/PhilJay/MPAndroidChart/v3.0.0-beta1/javadoc/

    今日之图~LineChart

    先看下效果压压惊,右边的图为左边的图横向拉伸后的效果
    这里写图片描述 这里写图片描述

    布局文件

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.mpandroidchartdemo.MainActivity" >
        <com.github.mikephil.charting.charts.LineChart
            android:id="@+id/chart"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </RelativeLayout>

    对于Chart,可以采用布局文件添加方式,也可以采用代码添加方式。

    代码

    requestWindowFeature(Window.FEATURE_NO_TITLE);//no title,去掉actionbar
    setContentView(R.layout.activity_main);//设置主视图
    
    chart = (LineChart) findViewById(R.id.chart);
    
    xVals = new ArrayList<>();
    yVals = new ArrayList<>();
    random = new Random();//产生随机数字
    
    for(int i = 0 ; i<12; i++) {
        float x = random.nextInt(10000);//获取value值
        yVals.add(new Entry(x, i));//创建Entry并且添加到Y值的list中,Y轴的值,一个entry代表一个显示的值
        xVals.add( (i+1) + "月");//横坐标显示xxx月
    }
    
    dataSet = new LineDataSet(yVals, "金额");//创建数据集并设置标签
    
    dataSet.setColors(ColorTemplate.COLORFUL_COLORS);//设置数据集显示的颜色,预支颜色模版ColorTemplate,也可以设置单一颜色和colors
    
    dataSet.setHighlightEnabled(true);//设置高亮
    dataSet.setValueTextColor(Color.BLUE);//设置Value值的显示文字颜色,字体大小和字体种类,这里我没有添加对应字体可以自己修改
    
    dataSet.setValueTextSize(10.0f);
    dataSet.setValueTypeface(null);
    
    data = new LineData(xVals, dataSet);//创建LineData,x轴List和Y轴数据集为参数
    
    chart.setData(data);//给图表添加数据
    chart.setDescription("收支状态");//设置图表描述的内容位置,字体等等
    chart.setDescriptionColor(Color.YELLOW);
    chart.setDescriptionTextSize(15f);
    chart.setDescriptionPosition(540, 40);
    
    chart.getXAxis().setPosition(XAxisPosition.BOTTOM);//设置X轴的显示位置,通过XAxisPosition枚举类型来设置
    chart.getXAxis().setAxisMinValue(0.0f);//设置X轴的最小值
    chart.getAxisRight().setEnabled(false);//关闭右边的Y轴,因为默认有两条,左边一条,右边一条,MPAndroidChart中有setEnabled方法的元素基本上都是使能的作用
    chart.animateY(3000);//动画效果,MPAndroidChart中还有很多动画效果可以挖掘
    
    //当值被选中的时候,执行操作显示一个Toast
    chart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
    
                @Override
                public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
                    // TODO Auto-generated method stub
                    Toast.makeText(MainActivity.this, String.valueOf(e.getVal()), Toast.LENGTH_SHORT).show();
                }
    
                @Override
                public void onNothingSelected() {
                    // TODO Auto-generated method stub
    
                }
            });

    备注

    中午抽空看下MPAndroidChart并记录下简单的入门,刚开始,有兴趣的可以直接去GitHub上看下Wiki,当然也有人翻译了这篇英文Wiki,直接搜索MPAndroidChart应该就都可以看到了。至于使用方式,大家应该都很清楚,引用jar包或者下载源码编译吧,我是懒人,前者可选。
    世界牛人太多,跟不上脚步了。

  • 相关阅读:
    北京之行
    csharp进界
    医院OA系统新思考
    茗洋博客
    monkey主要参数详解
    使用python判断Android自动化的渠道包是否全部打完
    手机连接mac电脑无法使用adb命令解决方法
    Python正则表达式指南
    Mac基本命令大全
    Mac之vim普通命令使用
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467176.html
Copyright © 2011-2022 走看看