废话少说直接上代码。

通过重写LineDataSet类实现背景颜色不同;

通过重写view类实现点的颜色不同;

重写LineDataSet类    

通过重写getColor方法背景颜色不同;

public class Linechrset extends LineDataSet {
    List list;
    public Linechrset(List yVals, String label) {
        super(yVals, label);
        list=yVals;
    }
    @Override
    public int getColor(int index) {
        if(index<(list.size()-1)){
            if((list.get(index+1).getVal())<50){
                return mColors.get(0);
            }else if(list.get(index+1).getVal()<70){
                return mColors.get(1);
            }else{
                return mColors.get(2);
            }
        }else{
            return mColors.get(0);
        }
    }

}

MainActivity

public class MainActivity extends AppCompatActivity {
    private RelativeLayout adasdasd;
    Runtt runnable=new Runtt();
    private LineChart mChart;
    int i=0;
    private ArrayList valueg = new ArrayList<>();
    private ArrayList values = new ArrayList<>();
    private ArrayList> list = new ArrayList<>();
    private ArrayList closs = new ArrayList<>();
    private Handler handler;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mChart = (LineChart) findViewById(R.id.test_lineChart);
        adasdasd = (RelativeLayout) findViewById(R.id.adasdasd);
        handler = new Handler();
        handler.postDelayed(runnable,3000);
    }
     class  Runtt implements Runnable {
         @Override
         public void run() {
             mChart.setTouchEnabled(false);
             XAxis xAxis = mChart.getXAxis();
             xAxis.setDrawAxisLine(false);
             xAxis.setDrawLabels(true);
             YAxis leftAxis = mChart.getAxisLeft();
             leftAxis.removeAllLimitLines();
             Handler handleree=new Handler();
             handleree.postDelayed(new Runnable() {
                 @Override
                 public void run() {
                  closs=getBgee();
                     list=getBgeexy();
                     Relativett relativett=new Relativett(getApplicationContext(),list,closs);
                     adasdasd.addView(relativett);
                 }
             },300);
             adasdasd.removeAllViews();
             leftAxis.enableGridDashedLine(10f, 10f, 0f);//设置虚线
             leftAxis.setDrawAxisLine(false);
             leftAxis.setDrawGridLines(false);
             mChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
             // mChart.getAxisRight().setEnabled(false);
                 valueg.add("第"+i+"名");
                 Random random=new Random();
                 int eeee=random.nextInt(100);
                 values.add(new Entry(eeee, i));
             Legend l = mChart.getLegend();
             l.setFormSize(50f);
             l.setForm(Legend.LegendForm.LINE);
             l.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER);
             Linechrset set1 = new Linechrset(values, "听力线");
             set1.setColors(new int[]{Color.YELLOW,Color.GREEN,Color.BLUE});
             set1.setDrawValues(false) ;
             mChart.notifyDataSetChanged();
             mChart.invalidate();
             set1.setDrawCircles(false);
             set1.setLineWidth(1f);
             set1.setValueTextSize(9f);
             LineData data = new LineData(valueg,set1);
             mChart.setData(data);
             i++;
             handler.postDelayed(runnable,3000);
         }
     }
    private ArrayList getBgee() {
        ArrayList bgList = new ArrayList<>();
        for(int i=0;i            if(values.get(i).getVal()<60){bgList.add(Color.RED);}else{bgList.add(Color.GREEN);}
        }
        return bgList;
    }
    private ArrayList> getBgeexy() {
        ArrayList> bgList = new ArrayList<>();
        for (int i=0;i            PointD p = mChart.getPixelsForValues(values.get(i).getXIndex(), values.get(i).getVal(),YAxis.AxisDependency.LEFT);
            Map map=new HashMap<>();
            map.put("x", (float) p.x);
            map.put("y", (float) p.y);
            bgList.add(map);
        }
        return bgList;
    }

}

重写view   

画点

public class Relativett extends View {
    ArrayList> dian=new ArrayList<>();
    ArrayList colore=new ArrayList<>();
    Paint paint = new Paint();
    public Relativett(Context context,ArrayList> dian,ArrayList colore) {
        super(context);
        this.dian=dian;
        this.colore=colore;
    }
    @Override
    protected void onDraw(Canvas canvas) {
          for(int ee=0;ee            paint.setColor(colore.get(ee));
            canvas.drawCircle(dian.get(ee).get("x"), dian.get(ee).get("y"), 5, paint);
        }
       super.onDraw(canvas);
    }
}

源码

更多相关文章

  1. Android-解决AutoCompleteText下拉提示的字体颜色是白色的问题
  2. 记一次Android完整项目(1)-设置statusBar颜色
  3. Android开发小技巧之对android颜色渐变(Gradient )的改进
  4. Android十六进制透明度代码
  5. 修改WebView背景颜色为透明
  6. Android中实现部分字体颜色改变的方式
  7. android 同一个界面多个跑马灯实现
  8. Android中控件的onClickListener,点击监听器
  9. android中 关于listitem 获得焦点时,改变其背景

随机推荐

  1. android的Handler
  2. Android(安卓)Manifest.permission权限
  3. Android安全模型之Android安全机制(进程通
  4. Android(安卓)Fragments 详细使用详细介
  5. Android——Handler和AsyncTask的使用
  6. 应用phprpc协议实现Android客户端的一些
  7. Windows环境下Android(安卓)Studio v1.0
  8. 利用HTML5开发Android笔记(下篇)
  9. Android(安卓)的启动流程
  10. 一种基于Android智能手机的远程视频监控