文档章节

Android – GridView为每行设定背景【转】

w
 walala_Lee
发布于 2014/04/26 10:10
字数 231
阅读 20
收藏 0

如果你既想使用GridView,又想给每行设置单独的背景,该怎么办呢?也许你说,用Listview或TableLayout就好了,但是使用这两个控件比较麻烦的是需要动态计算出列数。

 

所以想要解决这个问题,需要用如下方法:

 

首先定义一个类‘MyGridView’继承自GridView,设置每行用到的背景。

public class MyGridView extends GridView {  
   
    private Bitmap background;  
   
    public MyGridView(Context context, AttributeSet attrs) {  
        super(context, attrs);  
        background = BitmapFactory.decodeResource(getResources(), R.drawable.bg);  
    }  
   
}

 其次复写GridView的dispatchDraw(Canvas canvas)方法自定义背景

@Override  
protected void dispatchDraw(Canvas canvas) {  
    int count = getChildCount();  
    int top = count>0 ? getChildAt(0).getTop() : 0;  
    int backgroundWidth = background.getWidth();  
    int backgroundHeight = background.getHeight();  
    int width = getWidth();  
    int height = getHeight();  
   
    for (int y = top; y<height; y += backgroundHeight){  
        for (int x = 0; x<width; x += backgroundWidth){  
            canvas.drawBitmap(background, x, y, null);  
        }  
    }  
   
    super.dispatchDraw(canvas);  
}

 好了,现在可以用在Xml里了,看看效果吧

<your.package.name.MyGridView  
    android:id="@+id/mygridview"  
    <!-- GridView 其他属性 -->  
    />
 原文地址: http://thierry-xing.iteye.com/blog/1396779

本文转载自:http://thierry-xing.iteye.com/blog/1396779

共有 人打赏支持
w
粉丝 3
博文 167
码字总数 50381
作品 0
深圳
私信 提问
ActivityGroup + GridView 实现Tab分页标签

本文转自http://blog.csdn.net/hellogv/ 很多客户端软件和浏览器软件都喜欢用Tab分页标签来搭建界面框架。读者也许会马上想到使用TabHost 与 TabActivity的组合,其实最常用的不是它们,而是...

JavaGG
2011/06/28
1K
1
巧妙地添加GridView的 网格线

ListView 中设置分隔线的加如下参数即可: android:divider="@color/gray" android:dividerHeight="1dp" GridView网格布局,默认情况下是没有网格线的 查找网上资料,找到了一种为GridView添加......

泽江08
2014/11/11
0
0
Android 中UI设计的一些技巧

今天给大家分享的是Android中UI设计的一些技巧,本节内容主要有两点:一是Android按钮(Button)的UI设计,二是:ListView以及GridView的UI设计。 按钮的状态: 我们一般搞UI设计,按钮通常有三个...

鉴客
2011/09/18
551
0
实现半透明的popupwindow的源码

网上搜了一下,没合适的,最多的就是两种: 1.设置半透明主题 2.设置window的alpha值 // WindowManager.LayoutParams lp = getWindow().getAttributes(); // lp.alpha = 0.5f; // 0.0-1.0 // ...

长平狐
2012/08/14
11.3K
0
android给gridview设置selector全选

android给gridview设置selector的时候不能有单点效果,总是全选的效果, 我是这样的,点中的时候我把item变成蓝色,但是他却是使整个gridview都变成了蓝色. 不明白啊,为什么用图片可以, 用背景色...

天上掉下来的程序员
2012/09/12
2.7K
2

没有更多内容

加载失败,请刷新页面

加载更多

值得收藏:一份非常完整的MySQL规范

一、数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命...

Java干货分享
31分钟前
3
0
VirtualBox中CentOS7主机适配器(Host-only Adapter)网络配置

最近使用 VirtualBox 安装 CentOS 7 虚拟集群环境,为实现主机网络访问虚拟机、虚拟机与虚拟机之间网络互访,VirtualBox 默认的 NAT 网络连接方式是肯定不能满足了,以前常用的桥接网络方式这...

calmsnow
33分钟前
2
0
TechDay公开课实录:PaddlePaddle车牌识别实战和心得

车牌识别作为一种常见的图像识别的应用场景,已经是一个非常成熟的业务了,在传统的车牌识别中,可以使用字符分割+字符识别的方式来进行车牌识别,而深度学习兴起后,出现了很多端到端的车牌...

深度学习之桨
55分钟前
3
0
关于SeekBar 拖动区域小的解决办法

//seekbarLayout 是seekBar对象statusSeekbar的父层布局seekbarLayout = mStatusViewLayout.findViewById(R.id.id_seekbar_layout);seekbarLayout.setOnTouchListener(new View.OnTouchL......

东街小霸王
今天
2
0
python实现下载网络视频资源

项目需求: 有时候我们做爬虫的时候,需要把爬取到的视频资源保存到我们本地,以防爬取的视频链接被原来资源主人变更,所以就需要把好不容易拿到的资源永久变为自己的,就需要把视频链接下载到我们...

银装素裹
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部