`
thierry.xing
  • 浏览: 666290 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
580fa9c1-4a0c-3f40-a55a-c9256ce73302
Sencha Touch中...
浏览量:0
社区版块
存档分类
最新评论

Android – GridView为每行设定背景

阅读更多

原创帖,转发请注明出处:http://thierry-xing.iteye.com/blog/1396779

 

如果你既想使用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 其他属性 -->
    />
1
0
分享到:
评论
2 楼 thierry.xing 2013-11-18  
Rockey723 写道
你好,为什么我使用不成功啊。可以给个简单的demo吗?感谢啊。706031281@qq.com

这个好久了,我找找之前的代码
1 楼 Rockey723 2013-11-11  
你好,为什么我使用不成功啊。可以给个简单的demo吗?感谢啊。706031281@qq.com

相关推荐

    Android GridView实现一行显示并左右滚动

    在Android开发中,GridView是一种常用的布局控件,用于展示数据集,通常以网格形式排列。在某些场景下,我们可能需要让GridView实现单行显示且能左右滚动的效果,这就需要用到HorizontalScrollView。本教程将深入...

    android Gridview分页实现

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。当我们处理大量数据时,分页加载可以提高应用性能,减少内存消耗,并提供更好的用户体验。本篇文章将详细讲解如何在Android中利用...

    android下GridView用法

    - `numColumns`:设定每行显示的列数,可设为固定值或`auto_fit`。 - `columnWidth`:每列的宽度,默认单位为像素。 - `horizontalSpacing`/`verticalSpacing`:设置列间和行间的间距。 - `stretchMode`:设置...

    android gridview分页和滑动效果

    GridView继承自AbsListView,通过设置其`android:numColumns`属性来指定每行显示的列数。数据通常是通过Adapter来绑定到GridView上的,常见的Adapter有ArrayAdapter、CursorAdapter等,你可以根据实际需求选择合适的...

    android 自定义gridView 按日期显示图片和视频 galleryDemo

    android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo 免费下载 给个好评!

    Android下GridView的使用

    在`getView()`方法中,我们将为每个单元格创建并返回一个View,通常是一个ImageView或TextView。 ### 3. 设置适配器 在Activity或Fragment中,我们需要实例化适配器并将其设置到GridView上: ```java GridView ...

    Android之GridView视图实现

    `horizontalSpacing`和`verticalSpacing`定义了行与行、列与列之间的间距,`columnWidth`是每个单元格的宽度,`stretchMode`指定单元格如何拉伸以填充空间,`gravity`设置元素在GridView中的对齐方式。 接下来,...

    Android GridView完美横向滑动 ,并且可限制Gridview显示行数!

    适配器的`getView()`方法会为每个单元格创建一个View,并填充数据。 3. **设置布局参数**:在使用HorizontalGridView时,需要设置其布局参数,如宽度和高度。宽度应设置为`WRAP_CONTENT`,高度可以设定为固定值,...

    Android横向GridView合并item放大item

    在Android开发中,GridView是一种常见的布局管理器,它允许我们以网格形式展示数据。然而,标准的GridView默认是垂直滚动的,对于某些设计需求,如创建一个横向滚动的网格视图,就需要对GridView进行定制。这个主题...

    AndroidGridView点击每一个图片进入个人页面渐变特效.zip

    在GridView中,我们通常会为每个单元格设置点击事件监听器(OnClickListener或OnItemClickListener)。当用户点击一个图片时,触发相应的事件,执行打开个人页面的操作。 3. **渐变特效**: 渐变特效是指在界面...

    GridView行的背景随鼠标改变而改变

    ### GridView行的背景随鼠标改变而改变 #### 知识点概述 在Web开发中,尤其是在使用ASP.NET进行页面设计时,GridView控件是展示数据列表的一种非常实用且灵活的方式。用户界面的交互性和美观性对于提升用户体验至...

    Android 实现横向滑动的GridView

    GridView继承自AbsListView,它会将数据集中的每个项显示为一个单元格,并且可以自动调整列的数量以适应屏幕宽度。默认情况下,用户通过垂直滚动浏览GridView中的所有项目。 为了实现横向滑动的GridView,我们可以...

    Android自定义GridView长按拖动排序

    你可以为每个item创建一个记录,包含其原始位置和当前位置。当应用启动时,从数据库加载这些信息并根据新的顺序重新填充`GridView`。 6. **适配器更新:** 当item位置改变时,需要通知适配器进行更新。通过调用`...

    Android GridView使用例子

    同时,Android框架提供了内置的动画API,如AlphaAnimation、RotateAnimation等,可以为GridView添加平滑过渡效果。 9. **动态加载与无限滚动** 对于大数据集,可以实现分页加载,当用户滚动到底部时,加载更多数据...

    Android中GridView点击右上角的叉号删除条目,贝塞尔曲线实现进度条

    为了将这两个功能整合到一起,你可能需要在GridView的每一行中都包含这样一个进度条组件,并根据需要启动或停止进度条动画。比如,当用户点击删除叉号时,进度条开始动画,表示删除过程正在进行,直到数据从列表中...

    android gridview多选删除

    在Android开发中,GridView是一种常用的布局控件,它允许数据以网格的形式展示,通常用于创建类似照片库或应用列表的界面。"android gridview多选删除"是一个专题,主要涉及如何实现GridView中的多选功能,并支持...

    android 通过GridView控件获取本地图片并动态显示 程序源码

    文章是参考博客http://blog.csdn.net/eastmount/article/details/41808179完成,主要讲述通过GridView控件点击加号图片动态添加本地相册图片,点击图片可以删除已添加图片。同时界面比较美观。 免费资源,希望对大家...

    Android GridView分组带下拉刷新

    默认情况下,GridView会按照每行固定的列数进行排列。如果需要自定义布局,可以通过自定义布局参数或覆盖measure和layout方法来实现。 总结起来,"Android GridView分组带下拉刷新"是一个综合性的课题,涉及到...

    Android 实现GridView的item合并效果

    实现GridView的横向滑动,默认为纵向滑动,主要目标实现GridView中两个或多个相邻item的合并效果,满足项目的UI设计,同时解决了item选中放大被其他item遮挡的问题;用法简单,一目了然,可供参考

    android GridView 简单计算器

    Adapter的getCount()方法返回按钮的数量,getView()方法则为每个按钮创建并返回一个View对象。 接着,每个单元格通常会是一个Button控件,通过设置其文本属性来显示按钮上的数字或符号。为了实现点击事件,每个...

Global site tag (gtag.js) - Google Analytics