- 3
- 0
- 约1.42万字
- 约 22页
- 2017-03-26 发布于贵州
- 举报
android自定义控件开发之gridview——适用于机顶盒项目android自定义控件开发之gridview——适用于机顶盒项目
Android自定义控件开发之GridView——适用于机顶盒项目
由于使用系统自带的GridView 不够灵活,不能允许拖拉控件,故自己结合LinearLayout 封装的一个GridView ,通过本篇文章的阅读你可以学会如何自定义控件,如何使用组合控件,如何为自己的组合控件添加数据源和如何为自定义控件添加属性。
首先,我们要实现的效果是这样的:
上面1 2也是一个封装控件,用来为应用程序分页,具体如何实现下篇文章会提到,本篇先讲GridView。如图,这是一个标准的800*480大小的屏幕,所以设置了一页GridView 显示的应用程序数据为 三行五列,不足五列则按需显示。
按照上面的图例需求,大致上可以把GridView 画成如下的方式:
?
思路如下:
默认将我们的组合控件设置为Orientation?是VERTICAL。 ?首先一行五个,那么一行以一个Orientation 为HORIZONTAL 的线性布局包起来。然后在一行结束后,将Orientation? 的线性布局添加进组合控件里面来,不足五个则按需添加进来。
实现这一效果我们需要两个类,一个类用来表示GridView 的行,这里我们起名为TableRow,代码如下:
?
public?class?TableRow?{????????private?TableCell[]?cell;????????public?TableRow(TableCell[]?cell)?{????????????this.cell?=?cell;????????}????????public?int?getSize()?{????????????return?cell.length;????????}????????public?TableCell?getCellValue(int?index)?{????????????if?(index?=?getSize())?{????????????????return?null;????????????}????????????return?cell[index];????????}????????public?int?getCellCount()?{????????????return?cell.length;????????}????????public?int?getLastCellCount()?{????????????return?lastRowCount;????????}????}
?
?
另外一个类用来表示GridView 每行的列个,这里我们取名为TableCell,代码如下:
?
static?public?class?TableCell?{????????private?Object?value;????????public?TableCell(Object?value)?{????????????this.value?=?value;????????}????????public?Object?getValue()?{????????????return?value;????????}????}
?
并且我们还需要为GridView 设置一个外部可添加数据的方法,代码如下:
?
public?void?setAdapter(AppsAdapter?appsAdapter)?{????????this.adapter?=?appsAdapter;????????this.setOrientation(LinearLayout.VERTICAL);????????bindView();????}
?
?
其中,AppsAdapter 是一个自定义的BaseAdapter ,代码很简单,这里就不列出来了。关键的还是要看bindView ,这个方法是本篇GridView 显示数据的核心方法,代码如下:
?
void?bindView()?{????????removeAllViews();????????int?count?=?adapter.getCount();????????TableCell[]?cell?=?null;????????int?j?=?0;????????LinearLayout?layout;????????tableRowsList?=?new?ArrayListHashMapString,?Object();????????for?(int?i?=?0;?i??count;?i++)?{????????????j++;????????????f
您可能关注的文档
最近下载
- 沈阳铁路局员工合同协议.docx VIP
- 2025年心理咨询师考试题库500道附参考答案【实用】.docx VIP
- 鱼骨图分析法(鱼骨图模板).doc VIP
- 2025年部编版三年级上册语文期末冲刺模拟卷三.docx VIP
- KISSsoft软件教程-Tutorial-016-包络面蜗轮蜗杆的验证.pdf VIP
- 《成人甲状腺功能减退症基层诊疗指南(2025版)》.docx VIP
- 三年级数学特训卷.docx VIP
- 搏击操教案15-16(1)完整版.doc VIP
- 2026年内分泌科糖尿病精细化管理实施方案.docx
- (2026春新版)人教版三年级数学下册《一 生活中的运动现象》PPT课件.pptx
原创力文档

文档评论(0)