android自定义控件开发之gridview——适用于机顶盒项目

android自定义控件开发之gridview——适用于机顶盒项目

ID:17620900

大小:173.00 KB

页数:22页

时间:2018-09-03

android自定义控件开发之gridview——适用于机顶盒项目_第1页
android自定义控件开发之gridview——适用于机顶盒项目_第2页
android自定义控件开发之gridview——适用于机顶盒项目_第3页
android自定义控件开发之gridview——适用于机顶盒项目_第4页
android自定义控件开发之gridview——适用于机顶盒项目_第5页
资源描述:

《android自定义控件开发之gridview——适用于机顶盒项目》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Android自定义控件开发之GridView——适用于机顶盒项目  由于使用系统自带的GridView不够灵活,不能允许拖拉控件,故自己结合LinearLayout封装的一个GridView,通过本篇文章的阅读你可以学会如何自定义控件,如何使用组合控件,如何为自己的组合控件添加数据源和如何为自定义控件添加属性。  首先,我们要实现的效果是这样的:  上面12也是一个封装控件,用来为应用程序分页,具体如何实现下篇文章会提到,本篇先讲GridView。如图,这是一个标准的800*480大小的屏幕,所以设置了一页GridView显示的应用程序数据为三行五列,不足五列则按需显示。  按照上面的图例

2、需求,大致上可以把GridView画成如下的方式:   思路如下:  默认将我们的组合控件设置为Orientation 是VERTICAL。 首先一行五个,那么一行以一个Orientation为HORIZONTAL的线性布局包起来。然后在一行结束后,将Orientation 的线性布局添加进组合控件里面来,不足五个则按需添加进来。  实现这一效果我们需要两个类,一个类用来表示GridView的行,这里我们起名为TableRow,代码如下: public class TableRow {        private TableCell[] cell;        public TableR

3、ow(TableCell[] cell) {            this.cell = cell;        }        public int getSize() {            return cell.length;        }        public TableCell getCellValue(int index) {            if (index >= getSize()) {                return null;            }            return cell[index];        } 

4、       public int getCellCount() {            return cell.length;        }        public int getLastCellCount() {            return lastRowCount;        }    }    另外一个类用来表示GridView每行的列个,这里我们取名为TableCell,代码如下: static public class TableCell {        private Object value;        public TableCell(Objec

5、t value) {            this.value = value;        }        public Object getValue() {            return value;        }    }   并且我们还需要为GridView设置一个外部可添加数据的方法,代码如下: public void setAdapter(AppsAdapter appsAdapter) {        this.adapter = appsAdapter;        this.setOrientation(LinearLayout.VERTICAL); 

6、       bindView();    }  其中,AppsAdapter是一个自定义的BaseAdapter,代码很简单,这里就不列出来了。关键的还是要看bindView,这个方法是本篇GridView显示数据的核心方法,代码如下: void bindView() {        removeAllViews();        int count = adapter.getCount();        TableCell[] cell = null;        int j = 0;        LinearLayout layout;        tableRowsLis

7、t = new ArrayList>();        for (int i = 0; i < count; i++) {            j++;            final int position = i;            if (j > getColumnCount() 

8、

9、 i == 0) {                cell

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。