设为首页 加入收藏

TOP

Android中利用GridView实现水平和垂直均有滚动条的表格效果(一)
2014-11-24 12:53:56 来源: 作者: 【 】 浏览:0
Tags:Android 利用 GridView 实现 平和 垂直 滚动 表格 效果

1)main.xml -- 布局文件


< xml version="1.0" encoding="utf-8" >
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:alwaysDrawnWithCache="true"
android:orientation="vertical"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbars="horizontal|vertical" >


android:layout_width="wrap_content"
android:layout_height="fill_parent" >


android:id="@+id/data_gridview"
android:layout_width="1395dip"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:background="#ff0000"
android:columnWidth="31dip"
android:gravity="center"
android:numColumns="45"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbars="horizontal|vertical"
android:horizontalSpacing="1dip"
android:verticalSpacing="1dip" />



2) 每个gridcell对应的layout文件 --



imagecell.xml


< xml version="1.0" encoding="utf-8" >
android:layout_width="match_parent"
android:layout_height="match_parent" >


android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" >





3)Activity的代码 -- 这里为了提高性能,实现了重用View的机制


package com.xxxx.ui


import xxxx.xxxx


public class GridViewTestActivity extends Activity {


private int disp_rows = 20; //显示多少行
private final static int COLUMN_CNT = 45; //显示多少列,这个要和layout文件里面对应起来


private GridView dataGridView;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

dataGridView = (GridView) findViewById(R.id.data_gridview);
dataGridView.setNumColumns(COLUMN_CNT);//一共45列

dataGridView.setAdapter(new CellAdapter(getApplicationContext()));
dataGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView< > parent, View v, int position, long id) {
Toast.makeText(GridViewTestActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
});


} //end onCreate


class CellAdapter extends BaseAdapter {
private Context mContext;
private LayoutInflater mInflater;


public CellAdapter(Context c) {
mContext = c;
mInflater = LayoutInflater.from(c);
}


public int getCount() {
return (disp_rows * COLUMN_CNT); //行数x列数为一共要显示多少个格子
}


public Object getItem(int position) {
return null; //do nothing now
}


public long getItemId(int position) {
return 0;
}


// create a new ImageView for each item referenced by the Adapter
// ImageView 放在了自定义的格子排版文件中,可以扩展使用,也就是说,格子显示的内容可以自己扩展
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int row = getRow(position); //获取该格子对应表格的行和列
int column = getColumn(position);

ImageView imageView;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.imagecell, null);

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Mini2440 USB gadget --使用与测试 下一篇HTML5 利用json对象来存取复杂数据

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)
·C语言中,指针函数和 (2025-12-24 22:20:03)
·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)