登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 801|回复: 8

Android开发高仿课程表的布局实例详解,android开发页面布局

[复制链接]

317

主题

908

帖子

708

安币

手工艺人

发表于 2017-12-27 10:32:19 | 显示全部楼层 |阅读模式

        先说下这个demo,这是一个模仿课程表的布局文件,虽然我是个菜鸟,但我还是想留给学习的人一些例子,先看下效果

        

        然后再来看一下我们学校的app

        

        布局分析

        先上一张划分好了的布局图

        首先整个页面放在一个linearlayout布局下面,分为上面和下面两个部分,下面一个是显示课程表的详细信息

        1:这个没什么好讲的,就是直接一个linearlayout布局,然后将控件一个textview用来显示年份,一个view用来当作竖线,一个spinner用来显示选择周数

        2:这个是显示星期几的部件,是我自定义的view,自己重写ondraw方法,然后画出七个字,代码如下:

[Java] 查看源文件 复制代码
public void ondraw(canvas canvas)
{
//获得当前view的宽度
int width = getwidth();
int offset = width / 8;
int currentposition = offset;
//设置要绘制的字体
mpaint.settypeface(typeface.create(typeface.default_bold, typeface.bold));
mpaint.settextsize(30);
mpaint.setcolor(color.rgb(0, 134, 139));
for(int i = 0; i < 7 ; i++)
{
//圈出当前的日期
if( day == i)
{
system.out.println("画出当前的日期!");
}
canvas.drawtext(days[i], currentposition, 30, mpaint);
currentposition += offset;
}
//调用父类的绘图方法
super.ondraw(canvas);
}

        3:这个也是一个linearlayout,直接手写布局,将写出来的,将linearlayout的orientation 属性设置为vertical 。

        4:这是一个gridview ,然后自己继承baseadapter 填充内容,下面放上布局的xml文件

        

[Java] 查看源文件 复制代码
<

        下面是gridview的适配器代码:

[Java] 查看源文件 复制代码
public class myadapter extends baseadapter {
private context mcontext;
//保存内容的内部数组
private list<string> content;
public myadapter(context context, list<string> list) {
this.mcontext = context;
this.content = list;
}
public int getcount() {
return content.size();
}
public object getitem(int position) {
return content.get(position);
}
public long getitemid(int position) {
return position;
}
public view getview(int position,