• 每日总结


      老师又发布了个人作业的第三阶段,这次的要求包括生成柱状图,折线图还有密度地图。前两部分在网上找到了相关的内容即可生成,后续地图的实现没有思路就暂时不做这一部分了。

    对于折线图的实现,在网上查找相关内容,找到了这部分的代码,将自己的数据整理进去即可实现折线图的显示,

    代码如下:

    public class ZheXianTu extends AppCompatActivity {
    private DataBase databaseHelper; //用于创建帮助器对象
    private SQLiteDatabase db; //用于创建数据库对象
    private static final String name = "JZ.db"; //数据库名称
    private static final int version = 1; //数据库版本
    private LocationManager locationManager;
    private LineChart lineChart;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_zhe_xian_tu);
    Intent intent=getIntent();
    String Id=intent.getStringExtra("ThisID");
    List<reason> YUAN=new ArrayList<>();
    TextView textView1 = (TextView) findViewById(R.id.textView11);
    databaseHelper = new DataBase(this, name, null, version);
    DataBase moh=new DataBase(this,"JZ.db", null, 1);
    SQLiteDatabase db = moh.getReadableDatabase(); // 以只读的方式打开数据库
    String sql = "select * from jilu where xuehao="+Id+";";
    Cursor cursor = db.rawQuery(sql, null);
    while (cursor.moveToNext()) {
    String id = cursor.getString(cursor.getColumnIndex("xuehao"));
    String riqi=cursor.getString(cursor.getColumnIndex("riqi"));
    String time=cursor.getString(cursor.getColumnIndex("time"));
    String dizhi=cursor.getString(cursor.getColumnIndex("dizhi"));
    String wendu=cursor.getString(cursor.getColumnIndex("wendu"));
    String teshu=cursor.getString(cursor.getColumnIndex("teshu"));
    String yuanyin=cursor.getString(cursor.getColumnIndex("yuanyin"));
    String banji=cursor.getString(cursor.getColumnIndex("banji"));
    reason person = new reason(id,riqi,time,dizhi,wendu,teshu,yuanyin);
    YUAN.add(person); // 添加到数组
    }
    cursor.close();
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
    actionBar.hide();
    }

    //初始化控件
    lineChart = findViewById(R.id.lc);
    initLineChart(YUAN);
    }
    private void initLineChart(List<reason> list){
    lineChart.animateXY(2000, 2000); // 呈现动画
    Description description = new Description();
    description.setText(""); //自定义描述
    lineChart.setDescription(description);
    Legend legend = lineChart.getLegend();
    legend.setTextColor(Color.WHITE);
    setYAxis(list);
    setXAxis(list);
    setData(list);

    }
    private void setYAxis(List<reason> list){
    YAxis yAxisLeft = lineChart.getAxisLeft();// 左边Y轴
    yAxisLeft.setDrawAxisLine(true); // 绘制Y轴
    yAxisLeft.setDrawLabels(true); // 绘制标签
    yAxisLeft.setAxisMaxValue(40); // 设置Y轴最大值
    yAxisLeft.setAxisMinValue(32); // 设置Y轴最小值
    yAxisLeft.setGranularity(3f); // 设置间隔尺寸
    yAxisLeft.setTextColor(Color.WHITE); //设置颜色
    yAxisLeft.setValueFormatter(new IAxisValueFormatter() {
    @Override
    public String getFormattedValue(float value, AxisBase axis) {
    return (int)value + "℃";
    }
    });
    // 右侧Y轴
    lineChart.getAxisRight().setEnabled(false); // 不启用
    }
    private void setXAxis(List<reason> list){
    // X轴
    XAxis xAxis = lineChart.getXAxis();
    xAxis.setDrawAxisLine(false); // 不绘制X轴
    xAxis.setDrawGridLines(false); // 不绘制网格线
    // 模拟X轴标签数据
    final String[] weekStrs = new String[list.size()];
    for(int i=0;i<list.size();i++){
    weekStrs[i]=list.get(i).getRiqi().substring(5);
    }
    xAxis.setLabelCount(weekStrs.length); // 设置标签数量
    xAxis.setTextColor(Color.GREEN); // 文本颜色
    xAxis.setTextSize(10f); // 文本大小为18dp
    xAxis.setGranularity(1f); // 设置间隔尺寸
    // 使图表左右留出点空位
    xAxis.setAxisMinimum(-0.1f); // 设置X轴最小值
    //设置颜色
    xAxis.setTextColor(Color.WHITE);
    // 设置标签的显示格式
    xAxis.setValueFormatter(new IAxisValueFormatter() {
    @Override
    public String getFormattedValue(float value, AxisBase axis) {
    return weekStrs[(int) value];
    }
    });
    xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); // 在底部显示
    }
    private void setData(List<reason> list){

    List<Entry> shuju=new ArrayList<>();
    for (int i = 0; i < list.size(); i++) {
    shuju.add(new Entry(i, Float.parseFloat(list.get(i).getWendu())));

    }
    // 2. 分别通过每一组Entry对象集合的数据创建折线数据集
    LineDataSet lineDataSet1 = new LineDataSet(shuju, "温度");

    lineDataSet1.setCircleRadius(5); //设置点圆的半径

    lineDataSet1.setDrawCircleHole(false); // 不绘制圆洞,即为实心圆点

    // 值的字体大小为12dp
    lineDataSet1.setValueTextSize(12f);

    //将每一组折线数据集添加到折线数据中
    LineData lineData = new LineData(lineDataSet1);
    //设置颜色
    lineData.setValueTextColor(Color.WHITE);
    //将折线数据设置给图表
    lineChart.setData(lineData);
    }

    }

  • 相关阅读:
    狂神说笔记——SpringBoot开发单体应用21
    狂神说笔记——SpringBoot快速入门20
    Java全栈系列笔记
    狂神说笔记——SpringBoot操作数据库223
    狂神说笔记——Vue 快速入门19
    狂神说笔记——SpringBoot操作数据库221
    狂神说笔记——SpringCloud快速入门23
    狂神说笔记——SpringBoot开发单体应用21
    狂神说笔记——大前端技能快速入门18
    第 3 章 MCS51 单片机指令系统
  • 原文地址:https://www.cnblogs.com/ruangongwangxiansheng/p/14908692.html
Copyright © 2020-2023  润新知