文档章节

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

w
 walala_Lee
发布于 2014/04/26 10:10
字数 231
阅读 20
收藏 0
点赞 0
评论 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
深圳
巧妙地添加GridView的 网格线

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

泽江08
2014/11/11
0
0
Android Selector

Selector的应用: http://www.cnblogs.com/loulijun/archive/2012/04/15/2450312.html 使用selector修改TextView中字体的颜色: http://blog.csdn.net/dinglin87/article/details/7885806 2.......

当空皓月
2014/10/08
0
0
android点滴19:布局技巧小结

1.如何设置半透明、透明效果?透明色和RGB是两码事,透明色不能够用RGB表示,只能用RGBA表示,最后的即为透明值Alpha。放心,强大的android系统已经为我们提供了显示透明色的功能!如显示背景...

独鸣在彼岸
2013/05/30
0
0
ListView/GridView 按住拖动黑线框/桌面背景透上来【已解决】

本文标签: GridView , listview , 黑线框 方法1:listView.setDividerHeight(0); 方法2:this.getListView().setDivider(null); 方法3:android:divider="@null" 方法4:setCacheColorHint......

mythroad
2013/09/11
0
0
Android项目-几种常见的应用架构

android两种Tab分页的方式:TabActivity和ActivityGroup http://www.apkbus.com/blog-70574-40942.html 1、单个Activity架构(推荐) 首页是Activity,里面页面为View 头部底部栏都是公用的,...

刘遇安
2014/08/28
0
0
自定义ListView,Gridview屏蔽滑动功能

listview和gridview一样的 下面是以gridview为例的 public class CustomGridView extends GridView { public CustomGridView(Context context, AttributeSet attrs, int defStyle) { super(......

雨焰
2012/06/01
0
0
Android中View绘制不同状态背景图片原理

先看一下listview中的状态: 把下面的XML文件保存成你自己命名的.xml文件(比如listitembg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。drawable/item_bg.xml ja...

广阔
2013/02/18
0
0
Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解

今天继续给大家分享下View的相关知识,重点有一下两点: 1、View的几种不同状态属性 2、如何根据不同状态去切换我们的背景图片。 开篇介绍:android背景选择器selector用法汇总 对Android开发...

狱天穹
2014/09/24
0
0
Android开发:ScrollView嵌套GridView的解决办法

前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全。 解决办法,自定义一个GridView控件 publ...

小0426小
2013/05/30
0
0
android 中 scollView中嵌套GridView显示UI不全

的解决办法 前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全。 解决办法,自定义一个GridVie...

xiahuawuyu
2013/01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
10分钟前
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
11分钟前
0
0
合格前端第十二弹-TypeScript + 大型项目

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
15分钟前
0
0
编程学习之如何在Node.js中优化服务器端渲染?[图]

编程学习之如何在Node.js中优化服务器端渲染?[图] 在 Airbnb,我们花了数年时间将所有前端代码迁移到 React 架构,Ruby on Rails 在 Web 应用中所占的比例每天都在减少。实际上,我们很快会...

原创小博客
17分钟前
0
0
gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
31分钟前
0
0
Virtual Serial Port - RFC2217

Virtual Serial Port for Linux RFC-2217 The COM Port Control Protocol pyserial - RFC 2217 NetSerial - Windows Telnet COM Port - RFC Official Using Python, How do I make a virtual......

zungyiu
38分钟前
0
0
全球的IPv6部署急剧增加,中国进度较慢

导读 全球的IPv6部署继续增加,但中国在IPv6方面还需要努力,从部署图上分析,中国几乎没有几个地方是普及IPv6的。这6年来,自世界IPv6发布以来,全球网络和服务提供商的IPv6部署水平急剧增加...

问题终结者
42分钟前
1
0
好看的电影记录

星际迷航三 狂暴之路 新木乃伊 黑夜传说 铁血战士2

xd03122049
45分钟前
0
0
记录Yii2框架开发遇到微信错误提示

转载地址 记录Yii2框架开发遇到微信错误提示 微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在...

durban
47分钟前
1
0
LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部