MPAndroidChart 设置图标两边间距(偏移量)防止文字过长遮挡住 作者: Chuwen 时间: 2020-10-30 分类: Android 1 条评论 # 代码 ``` LineChart linechart2=(LineChart)findViewById(R.id.linechart2); linechart2.setExtraLeftOffset(100f);//左间距 linechart2.setExtraRightOffset(80f);//右间距 ``` ![未命名图片.png][1] [1]: https://cdn.nowtime.cc/2020/10/30/2262053361.png
Linux 相关练习题 作者: Chuwen 时间: 2020-10-30 分类: Linux 评论 # 以#开头的那一行是注释,不需要运行 # 以#开头的那一行是注释,不需要运行 # 以#开头的那一行是注释,不需要运行 1. ## 创建云服务器,提供能够进行有效连接的公网IP。 --5分 (如果未建立则考试没有成绩) 2. ## 创建 `jjcpxp` 用户,并设置密码为 `12345678` --5分 (如果未建立则考试不能及格) ```bash # 指定 -M 参数时不在 /home 下创建目录 useradd jjcpxp -p 12345678 #小扩展,删除用户可以使用 userdel -r 用户名 ``` 3. ## 创建 `test` 用户,并将用户目录设置为 `/home/jjcpxp` 设置密码为 `123456`. --5分 ```bash # -d /home/jjcpxp # -m useradd test -p 123456 # 修改目录 chown -R test.test /home/jjcpxp ``` 4. ## 用 `test` 用户在 `/home/jjcpxp` 目录下建立 `TXT.sh` 文件,文件内容为批处理建立 `TXT1.txt`、`TXT2.txt`、`TXT3.txt` 文件。 再建立 `del_TXT.sh` 文件文件内容为删除以上建立的3个txt文件,`jjcpxp` 用户可以操作执行。 --10分 ```bash # 登录 test 账户 su - test # 进入 /home/jjcpxp 目录 cd /home/jjcpxp # 创建 TXT.sh 文件 touch TXT.sh # 设置 TXT.sh 文件内容:创建 TXT1.txt、TXT2.txt、TXT3.txt 文件 echo touch TXT1.txt >> TXT.sh echo touch TXT2.txt >> TXT.sh echo touch TXT3.txt >> TXT.sh #################################################### # 再建立 del_TXT.sh 文件 touch del_TXT.sh # 文件内容为删除以上建立3个txt文件 echo rm -rf TXT1.txt >> del_TXT.sh echo rm -rf TXT2.txt >> del_TXT.sh echo rm -rf TXT3.txt >> del_TXT.sh # 设置执行权限 ## 首先切换成 root 用户 su - root cd /home/jjcpxp # 然后再设置文件权限 (jjcpxp 用户可以操作执行) chown jjcpxp del_TXT.sh ``` 5. ## 用 `jjcpxp` 用户在 `/home/jjcpxp` 目录下建立 `Dir.sh` 文件 ,文件内容为建立 `dir1`、`dir2`,`dir3` 的3个文件夹,同时建立 `del_Dir.sh` 文件,文件内容为同时删除上述建立的文件目录。 --10分 ```bash su - jjcpxp touch Dir.sh echo mkdir dir1 >> Dir.sh echo mkdir dir2 >> Dir.sh echo mkdir dir3 >> Dir.sh touch del_Dir.sh echo rm -rf dir1 >> del_Dir.sh echo rm -rf dir2 >> del_Dir.sh echo rm -rf dir3 >> del_Dir.sh ``` 6. ## 建立内容为“!!!欢迎来到[自己姓名]CentOS服务器!!!”登录显示。--5分 ```bash su - root vi /etc/motd # 按键盘上 i 键进入编辑 # 然后删除文 # 然后按 Esc 键,输入 :wq # 然后按回车保存并关闭文件 ``` 7. ## 在 `/home/jjcpxp` 建立一个属主为 `root` 的 `xuehao` 文件,文件内容为`自己的姓名 /学号`:同时在 `/tmp` 目录下建立相同 的文件 且 `jjcpxp` 用户可读 --8分 ```bash su - root touch /home/jjcpxp/xuehao echo 陈文洲/10086 > /home/jjcpxp/xuehao cp /home/jjcpxp/xuehao /tmp # 参考 https://blog.51cto.com/qingmiao/2069603 setfacl -m u:jjcpxp:r /tmp/xuehao ``` 8. ## 统计 `/tmp/linux_test.txt` 文件的前10行文件内容并把内容结果输出到 `/home/jjcpxp` 目录下的 `grep` 文件中 --8分 ```bash touch /tmp/linux_test.txt # 按键盘上 i 键进入编辑 # 自己在里面写15行内容 # 然后按 Esc 键,输入 :wq # 然后按回车保存并关闭文件 vi /tmp/linux_test.txt head -10 /tmp/linux_test.txt > /home/jjcpxp/grep ``` 9. ## 统计云服务器在正在运行的 `.service` 服务结果并将结果输出到 `/home/jjcpxp` 目录下 `service` 文件中 --8分 ```bash ps auxw > /home/jjcpxp/service ``` 10. ## 将 `/etc/sysconfig/` 目录下的树结构结果输出到 `/home/jjcpxp` 目录下的 `tree` 文件中去 -8分 ```bash # 安装 tree 命令 yum install -y tree tree /etc/sysconfig/ > /home/jjcpxp/tree ``` 11. ## 统计 `/etc/sysconfig/network-scripts/ifcfg-eth0` 的文件文件行数并输出到 `/home/jjcpxp/` 目前的 `wc` 中。 再将上述文件的内容输出到 `ifcfg-eth0` 文件中 --8分 ```bash wc -l /etc/sysconfig/network-scripts/ifcfg-eth0 > /home/jjcpxp/wc cat /home/jjcpxp/wc > /home/jjcpxp/ifcfg-eth0 ``` 12. ## 将关机命令、重启命令的3种形式 写入到 `/home/jjcpxp` 目录中的 `shut` 文件中 --5分 ```bash # 关机命令 echo shutdown -h now >> /home/jjcpxp/shut # ## 重启命令 echo shutdown -r now >> /home/jjcpxp/shut ``` 13. ## 测试 www.163.com 网站的联通性并测试10个IMCP包将结果输出到 `/home/jjcpxp` 目录中的 `ping`文件中 --10分 ```bash # -c 参数,指定次数 # > /home/jjcpxp/ping 将结果重定向至 /home/jjcpxp/ping 并覆盖写入文件 ping -c 10 www.163.com > /home/jjcpxp/ping ``` 14. ## 将 `/home/jjcpxp` 目录中的所有文件拷贝到 `/tmp` 目录中 `test` 目录下,所有文件设为 `test` **只读** 属性 --10分 ```bash mkdir /tmp/test cp /home/jjcpxp/* /tmp/test setfacl -m u:jjcpxp:r /tmp/test/* ```
MPAndrodChart 绘制分组柱状图实例 作者: Chuwen 时间: 2020-10-29 分类: Android 评论 # MPAndrodChart 绘制分组柱状图实例 自己摸索了许久写出来的,只给出死方法例子,有些地方有注释,不懂得话可以评论区留言 # 布局文件 ``` ``` # Java 代码 > 我直接分享方法了 > 你可以直接在 `XXXXXActivity` 的 `onCreate()` 方法调用本方法即可 ``` //我直接分享方法了 //你直接再 Activity 的 onCreate() 方法调用本方法即可 private void drawBarChart() { //这个不必多解释吧 BarChart barChart = findViewById(R.id.barchart1); barChart.getLegend().setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER); barChart.getLegend().setVerticalAlignment(Legend.LegendVerticalAlignment.TOP); final Description description = new Description(); description.setPosition(200, 60); description.setText("道路拥堵状况");//设置简介 description.setTextSize(10f); barChart.setDescription(description); List barEntryList = new ArrayList<>(); barEntryList.add(new BarEntry(1, 4)); barEntryList.add(new BarEntry(2, 5)); barEntryList.add(new BarEntry(3, 4)); barEntryList.add(new BarEntry(4, 3)); barEntryList.add(new BarEntry(5, 2)); barEntryList.add(new BarEntry(6, 1)); barEntryList.add(new BarEntry(7, 3)); List barEntryList2 = new ArrayList<>(); barEntryList2.add(new BarEntry(1, 5)); barEntryList2.add(new BarEntry(2, 4)); barEntryList2.add(new BarEntry(3, 3)); barEntryList2.add(new BarEntry(4, 2)); barEntryList2.add(new BarEntry(5, 1)); barEntryList2.add(new BarEntry(6, 2)); barEntryList2.add(new BarEntry(7, 3)); List barEntryList3 = new ArrayList<>(); barEntryList3.add(new BarEntry(1, 4)); barEntryList3.add(new BarEntry(2, 2)); barEntryList3.add(new BarEntry(3, 3)); barEntryList3.add(new BarEntry(4, 2)); barEntryList3.add(new BarEntry(5, 4)); barEntryList3.add(new BarEntry(6, 1)); barEntryList3.add(new BarEntry(7, 1)); List barEntryList4 = new ArrayList<>(); barEntryList4.add(new BarEntry(1, 2)); barEntryList4.add(new BarEntry(2, 1)); barEntryList4.add(new BarEntry(3, 5)); barEntryList4.add(new BarEntry(4, 2)); barEntryList4.add(new BarEntry(5, 3)); barEntryList4.add(new BarEntry(6, 4)); barEntryList4.add(new BarEntry(7, 4)); List barEntryList5 = new ArrayList<>(); barEntryList5.add(new BarEntry(1, 1)); barEntryList5.add(new BarEntry(2, 2)); barEntryList5.add(new BarEntry(3, 2)); barEntryList5.add(new BarEntry(4, 3)); barEntryList5.add(new BarEntry(5, 5)); barEntryList5.add(new BarEntry(6, 4)); barEntryList5.add(new BarEntry(7, 3)); List barEntryList6 = new ArrayList<>(); barEntryList6.add(new BarEntry(1, 2)); barEntryList6.add(new BarEntry(2, 1)); barEntryList6.add(new BarEntry(3, 1)); barEntryList6.add(new BarEntry(4, 2)); barEntryList6.add(new BarEntry(5, 4)); barEntryList6.add(new BarEntry(6, 3)); barEntryList6.add(new BarEntry(7, 3)); List barEntryList7 = new ArrayList<>(); barEntryList7.add(new BarEntry(1, 4)); barEntryList7.add(new BarEntry(2, 1)); barEntryList7.add(new BarEntry(3, 2)); barEntryList7.add(new BarEntry(4, 2)); barEntryList7.add(new BarEntry(5, 3)); barEntryList7.add(new BarEntry(6, 2)); barEntryList7.add(new BarEntry(7, 1)); BarDataSet barDataSet = new BarDataSet(barEntryList, "学院路"); BarDataSet barDataSet2 = new BarDataSet(barEntryList2, "联想路"); BarDataSet barDataSet3 = new BarDataSet(barEntryList3, "医院路"); BarDataSet barDataSet4 = new BarDataSet(barEntryList4, "幸福路"); BarDataSet barDataSet5 = new BarDataSet(barEntryList5, "环城快速路"); BarDataSet barDataSet6 = new BarDataSet(barEntryList6, "环城高速"); BarDataSet barDataSet7 = new BarDataSet(barEntryList7, "停车场"); barDataSet.setColor(Color.parseColor("#bf382d")); barDataSet2.setColor(Color.parseColor("#2f4455")); barDataSet3.setColor(Color.parseColor("#60a0a7")); barDataSet4.setColor(Color.parseColor("#d48164")); barDataSet5.setColor(Color.parseColor("#91c6af")); barDataSet6.setColor(Color.parseColor("#769e83")); barDataSet7.setColor(Color.parseColor("#c98624")); BarData barData = new BarData(barDataSet, barDataSet2, barDataSet3, barDataSet4, barDataSet5, barDataSet6, barDataSet7); barData.setDrawValues(false); barChart.getXAxis().setValueFormatter(new IAxisValueFormatter() { @Override public String getFormattedValue(float value, AxisBase axis) { switch ((int) value) { case 0: return "周一"; case 10: return "周二"; case 20: return "周三"; case 30: return "周四"; case 40: return "周五"; case 50: return "周六"; case 60: default: return "周日"; } } }); barChart.getAxisLeft().setYOffset(25f);//这样会向下偏移 50% barChart.getAxisLeft().setAxisMinimum(0f); barChart.getAxisLeft().setAxisMaximum(5f); barChart.getAxisLeft().setLabelCount(6, true);//设置间距 barChart.getAxisLeft().setValueFormatter(new IAxisValueFormatter() { @Override public String getFormattedValue(float value, AxisBase axis) { switch ((int) value) { case 1: return "畅通"; case 2: return "缓行"; case 3: return "一般拥堵"; case 4: return "中度拥堵"; case 5: return "严重拥堵"; default: return ""; } } }); barChart.getAxisRight().setAxisMinimum(0f); barChart.getAxisRight().setAxisMaximum(5f); barChart.getAxisRight().setLabelCount(6, true);//设置间距 barChart.getXAxis().setTextSize(12f); barChart.getXAxis().setYOffset(-0); barChart.getXAxis().setAxisMinimum(1); barChart.getXAxis().setAxisMaximum(70); barChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); barChart.getXAxis().setCenterAxisLabels(true); barChart.getXAxis().setDrawAxisLine(false);//横线 barChart.getXAxis().setDrawGridLines(false);//垂线 barChart.setData(barData);//先设置数据 float groupSpace = 2f;//0.3 * DaraSet float barSpace = 0.28f; //0.04 * DataSet //0.1 * DataSet //然后再设置分组柱状图 barChart.groupBars(.7f, groupSpace, barSpace); barChart.invalidate(); } ``` # 运行截图 ![Snipaste_2020-10-29_20-30-36.jpg][1] [1]: https://cdn.nowtime.cc/2020/10/29/1302616410.jpg
MPAndroidChart 柱状图,左(右)Y轴标签(值)向下偏移50% 作者: Chuwen 时间: 2020-10-29 分类: Android 评论 # 代码 > Y轴右侧也是同理的,你只需要将 `barChart.getAxisLeft()` 改成 `barChart.getAxisRight()` 就可以啦 ``` BarChart barChart = findViewById(R.id.barchart1); //...这里省略了部分代码 barChart.getAxisLeft().setYOffset(25f);//这样会向下偏移 50%。我也不知道为啥,自己试出来的 barChart.getAxisLeft().setAxisMinimum(0f);//最小刻度值 barChart.getAxisLeft().setAxisMaximum(5f);//最大刻度值 barChart.getAxisLeft().setLabelCount(6, true);//设置标签个数 ``` # 运行结果 ![MPAndroidChart 柱状图,左Y轴标签(值)向下偏移50%][1] [1]: https://cdn.nowtime.cc/2020/10/29/2068874471.jpg
MPAndroid 画柱状图,顶部显示值 并且设置文字颜色、大小 作者: Chuwen 时间: 2020-10-29 分类: Android 评论 ### 找了许久才发现,需要设置 AxisLeft 最小值 ``` HorizontalBarChart hBarChart = findViewById(R.id.two); YAxis lYAxis = hBarChart.getAxisLeft(); lYAxis.setAxisMinimum(0);//必须要设置这个才会显示 lYAxis.setAxisMaximum(100);//这个可以设置可以不设置 ``` # 结果 ![Snipaste_2020-10-29_15-12-05.jpg][1] # 设置文字颜色、大小 ``` BarDataSet barDataSet = new BarDataSet(values, ""); barDataSet.setValueTextColor(Color.RED); barDataSet.setValueTextSize(20f); ``` # 效果 ![Snipaste_2020-10-29_15-16-45.jpg][2] [1]: https://cdn.nowtime.cc/2020/10/29/1644885309.jpg [2]: https://cdn.nowtime.cc/2020/10/29/217619350.jpg