`
dyingbleed
  • 浏览: 116484 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

【Android】GridView添加网格线

阅读更多

GridView网格布局,默认情况下是没有网格线的

查找网上资料,找到了一种为GridView添加网格线的小技巧

 

实际上,该网格线是通过设置GridView各子项的间隔,并分别设置GridView背景色与子项背景色实现的。

 

实现方法

 

  1. 设置GridView背景色,设置水平间方向间隔属性值android:horizontalSpacing和竖直方向间隔属性值android:verticalSpacing
  2. 设置GridView子项背景色
示例代码:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_GridView"
    android:horizontalSpacing="1dp"
    android:verticalSpacing="1dp"
    android:stretchMode="columnWidth"
    android:numColumns="3"
    android:gravity="center"
    android:listSelector="@null"
    android:background="#DCDCDC"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

</GridView>
Main.java
package dyingbleed.iteye;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;

public class Main extends Activity {
	
	private GridView grid;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        grid = (GridView) findViewById(R.id.main_GridView);
        grid.setAdapter(new GridViewAdapter(this));
    }
    
    private class GridViewAdapter extends BaseAdapter {
    	
    	private Context context;
    	
    	public GridViewAdapter(Context context) {
    		this.context = context;
    	}
    	
    	int count = 100;

		@Override
		public int getCount() {
			return count;
		}

		@Override
		public Object getItem(int position) {
			return position;
		}

		@Override
		public long getItemId(int position) {
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			TextView result = new TextView(context);
			result.setText("Item "+position);
			result.setTextColor(Color.BLACK);
			result.setTextSize(24);
			result.setLayoutParams(new AbsListView.LayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)));
			result.setGravity(Gravity.CENTER);
			result.setBackgroundColor(Color.WHITE); //设置背景颜色
			return result;
		}
    	
    }
}
  
运行截图:
  • 大小: 44.7 KB
分享到:
评论
1 楼 hualang 2012-10-17  
不错,不过有个问题:设置后各个Item无法点击,还要设置clickable属性并且设置相应的selector才能使用,这样有些麻烦

相关推荐

    Android仿支付宝首页GridView的网格效果-不能够换位置

    这一次给大家带来的依旧是最简单的页面效果图--Android仿支付宝首页GridView的网格效果-不能够换位置 原理也很简单,就是gridview有一个背景颜色,也就是你所看见的分割线的颜色,然后还有一个就是每一个子布局的...

    Android中RecyclerView布局代替GridView实现类似支付宝的界面

    给Gridview 添加分割线,也就是实现网格布局,不清楚谷歌为什么没有给Gridview 添加一个类似 ListView 的Divider 属性,因此就需要我们自己去添加分割线, 目前两种方法,第一种是 利用GridView 的 android:...

    Android App中的GridView网格布局使用指南

    GridView布局所实现的就是类似于九宫格的矩阵界面效果,下面整理了Android App中的GridView网格布局使用指南,包括分割线的添加与自定义GridView的实现等技巧,需要的朋友可以参考下

    Android编程入门很简单.(清华出版.王勇).part1

    5.2.21 使用网格视图——GridView 5.2.22实例——通过宫格视图展示相应的应用 5.2.23 使用消息提醒——Toast 5.2.24实例——Toast的4种实现 5.3使用列表视图(ListView&ExpandableListView) 5.3.1 使用列表——...

    Android代码-FamiliarRecyclerView

    这是一个如你熟悉ListView、GridView一样熟悉的RecyclerView类库,你可以用以前使用ListView / GridView的习惯来使用RecyclerView,这些可让你将项目原有的ListView / GridView / 瀑布流 迁移到RecyclerView时减少...

    疯狂Android讲义源码

     2.4.11 网格视图(GridView)和  图像切换器(ImageSwitcher)  功能和用法 104  2.4.12 画廊视图(Gallery)的功能和  用法 107  2.5 对话框 110  2.5.1 使用AlertDialog创建简单  对话框 110  2.5.2 ...

    Android编程入门很简单.(清华出版.王勇).part2

    5.2.21 使用网格视图——GridView 5.2.22实例——通过宫格视图展示相应的应用 5.2.23 使用消息提醒——Toast 5.2.24实例——Toast的4种实现 5.3使用列表视图(ListView&ExpandableListView) 5.3.1 使用列表——...

    疯狂Android讲义.part2

    2.4.11 网格视图(GridView)和 图像切换器(ImageSwitcher) 功能和用法 104 2.4.12 画廊视图(Gallery)的功能和 用法 107 2.5 对话框 110 2.5.1 使用AlertDialog创建简单 对话框 110 2.5.2 使用AlertDialog创建...

    疯狂Android讲义.part1

    2.4.11 网格视图(GridView)和 图像切换器(ImageSwitcher) 功能和用法 104 2.4.12 画廊视图(Gallery)的功能和 用法 107 2.5 对话框 110 2.5.1 使用AlertDialog创建简单 对话框 110 2.5.2 使用AlertDialog创建...

    RecyclerView的万能分割线

    什么是RecyclerView RecyclerView是Android 5.0 materials design中的组件之一,相应的还有CardView、Palette等。看名字我们就能看出一点端倪...添加默认分割线:高度为2px,颜色为灰色 mRecyclerView.addItemDecora

Global site tag (gtag.js) - Google Analytics