【Android】课程表布局实现(支持动态添加课程)
来源:互联网 发布:淘宝客服结束语大全 编辑:程序博客网 时间:2024/05/08 13:10
平时使用的"超级课程表"可以从根据学号直接从教务系统中导入对应的课程表,确实方便。作为开发人员,自然会想自己去实现。当然,抓数据这个我不在行,做Android的就实现它的布局了。
很明显,这课表就是原生的(不是什么hXXX5)。先上效果图
大体思路
分析:
1.一天有12节课,对于手机屏幕不大的手机如果全部显示则显得太挤。因此下面的课程是支持滑动的,但是表头不能
让它滑动,不然就看不到是星期几,用户体验不好,不够人性化。
2.课的节数是不一定的,也就是说这个布局不是死的,课程需要动态添加。
具体:
1. 首先是一个线性布局,包含两个部分
1) 表头(周一~周日)
2) 课程部分
2.表头直接一个水平方向的线性布局,通过权值进行均分即可。
3.课程主体部分细分:
1)使用ScrollView实现对超出区域的部分进行滑动。
2)左侧的课的节数与表头部分类似,只是将水平方向改成垂直方向。
3)右边课程部分细分:
- 一个水平方向的线性布局将七天包含进来
- 每一天再用一个相对布局包含(设置权值进行水平均分)
- 在代码中动态向相对布局中添加TextView(这也是为什么上面使用相对布局的原因)
XML中的布局基本就是这样,好多细节需要处理,具体看我GitHub上的完整代码。
接下来就是动态添加TextView的代码:
生成TextView
private TextView createTv(int start,int end,String text){ TextView tv = new TextView(this); /* 指定高度和宽度 */ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(gridWidth,gridHeight*(end-start+1)); /* 指定位置 */ tv.setY(gridHeight*(start-1)); tv.setLayoutParams(params); tv.setGravity(Gravity.CENTER); tv.setText(text); return tv; }
添加TextView:
private void addView(int i,int start,int end,String text){ TextView tv; switch (i){ case 1: layout = (RelativeLayout) findViewById(R.id.Monday); break; case 2: layout = (RelativeLayout) findViewById(R.id.Tuesday); break; case 3: layout = (RelativeLayout) findViewById(R.id.Wednesday); break; case 4: layout = (RelativeLayout) findViewById(R.id.Thursday); break; case 5: layout = (RelativeLayout) findViewById(R.id.Friday); break; case 6: layout = (RelativeLayout) findViewById(R.id.Saturday); break; case 7: layout = (RelativeLayout) findViewById(R.id.Sunday); break; } tv= createTv(start,end,text); tv.setBackgroundColor(Color.argb(100,start*5,(start+end)*20,0)); layout.addView(tv); }
完整代码:https://github.com/MummyDing/SchoolTimetable(不要吝啬你的Star哈)
【转载请注明出处】
Author: MummyDing
出处:http://blog.csdn.net/mummyding/article/details/48549573
0 0
- 【Android】课程表布局实现(支持动态添加课程)
- android实现课程表界面
- Android 课程表的实现
- Android 自定义ViewGroup 实现FlowLayout,动态添加布局
- Android仿超级课程表的课程界面设计
- Android仿超级课程表的课程界面设计
- Android动态生成课程表 详解
- Android 动态添加View布局
- Android动态布局实现
- Android抓取正方系统课程——实现自己的课程表
- Android超级课程表实现原理
- Android课程表客户端实现方案
- Android课程表服务器端实现方案
- Android仿超表的课程表实现
- [android开发]模仿课程表的布局
- Android 实现布局动态加载
- Android 实现布局动态加载
- android 动态实现表格布局
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- 实现自定义CollectionEditor的Propertygrid的重置功能
- TextField相关基础用法
- 关于地图的总结
- JAVA中的优先级队列PriorityQueue
- 【Android】课程表布局实现(支持动态添加课程)
- 取余与周期函数
- rc.sysinit启动脚本文件解析
- 小K 的农场(farm)题解
- 约战Angular中Promise(2)
- map 与 pojo相互转换
- 【慕课笔记】PHP面向对象编程——基本实践(DAY 2)
- iOS 开发:绘制像素到屏幕
- Android M 新的运行时权限开发者需要知道的一切