mpandroidchat实例 仿360你财富

效果如图


代码如下

MainActivity.java

mLineChart = (LineChart) findViewById(R.id.lineChart);
        //动画
        mLineChart.animateX(1000);
        //获得左下角图例
        Legend legend = mLineChart.getLegend();
        //控制图例不被显示
        legend.setEnabled(false);
        //获取X轴
        XAxis xAxis = mLineChart.getXAxis();
        //X轴边框虚线化
        xAxis.enableGridDashedLine(10f, 10f, 0f);
        //设置X轴的文字在底部
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        //获取左端Y轴,Y轴有两条,最左端和左右端分别有一条
        YAxis leftAxis = mLineChart.getAxisLeft();
        //Y轴边框虚线画
        leftAxis.enableGridDashedLine(10f, 10f, 0f);
        //获取右端Y轴
        YAxis rightAxis = mLineChart.getAxisRight();
        //Y轴边框虚线画
        rightAxis.enableGridDashedLine(10f, 10f, 0f);
        //去掉坐标轴右边的Y线
        rightAxis.setDrawAxisLine(false);
        //去掉坐标轴右边Y线上的文字
        rightAxis.setDrawLabels(false);
        //设置描述文字
        mLineChart.setDescription("");
        //模拟一个x轴的数据  12/1 12/2 ... 12/7
        List<String> xValues = new ArrayList<>();
        for (int i = 1; i < 8; i++) {
            xValues.add("12/" + i);
        }
        Log.e("wing", xValues.size() + "");
        //模拟y轴数据(存放y轴数据的是一个Entry的ArrayList) 他是构建LineDataSet的参数之一
        ArrayList<Entry> yValue1 = new ArrayList<>();
        yValue1.add(new Entry(7, 0));
        yValue1.add(new Entry(17, 1));
        yValue1.add(new Entry(3, 2));
        yValue1.add(new Entry(5, 3));
        yValue1.add(new Entry(4, 4));
        yValue1.add(new Entry(3, 5));
        yValue1.add(new Entry(7, 6));
        //构建一个LineDataSet 代表一组Y轴数据 (比如不同的彩票: 七星彩  双色球)
        LineDataSet dataSet = new LineDataSet(yValue1, "");
        //去掉坐标上的原点,默认是true
        dataSet.setDrawCircles(false);
        //构建一个类型为LineDataSet的ArrayList 用来存放所有 y的LineDataSet   他是构建最终加入LineChart数据集所需要的参数
        List<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
        //将数据加入dataSets
        dataSets.add(dataSet);
        //构建一个LineData  将dataSets放入
        LineData lineData = new LineData(xValues,dataSets);
        lineData.setDrawValues(false);
        //将数据插入
        mLineChart.setData(lineData);
        //自定义view,用来显示被选中的高亮值
        CustomMarkerView mv = new CustomMarkerView(mLineChart,MainActivity.this,R.layout.mpchart_marker_view);
        mLineChart.setMarkerView(mv);

自定义view

CustomMarkerView
public class CustomMarkerView extends MarkerView{
    private TextView tvContent;
    LineChart mLineChart;
    public CustomMarkerView (LineChart lineChart,Context context,int layoutResource) {
        super(context, layoutResource);
        tvContent = (TextView) findViewById(R.id.tvContent);
        mLineChart = lineChart;
    }

    @Override
    public void refreshContent(Entry e, Highlight highlight) {
        tvContent.setText("净值:" + e.getVal() + "时间:" + mLineChart.getData().getXVals().get(e.getXIndex()));
        Log.i("testChart", "e.getVal111-->" + tvContent.getText() );
    }

    @Override
    public int getXOffset(float xpos) {
        return -(getWidth() / 2);
    }

    @Override
    public int getYOffset(float ypos) {
        return -getHeight();
    }
}

自定义view对应的样式

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="40dp">
    <TextView
        android:id="@+id/tvContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="7dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:text=""
        android:textSize="20sp"
        android:textColor="@android:color/black"
        android:ellipsize="end"
        android:singleLine="true"
        android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>


猜你喜欢

转载自blog.csdn.net/bruse1990/article/details/51188555