原创帖,转发请注明出处: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 其他属性 -->
/>
分享到:
相关推荐
在Android开发中,GridView是一种常用的布局控件,用于展示数据集,通常以网格形式排列。在某些场景下,我们可能需要让GridView实现单行显示且能左右滚动的效果,这就需要用到HorizontalScrollView。本教程将深入...
在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。当我们处理大量数据时,分页加载可以提高应用性能,减少内存消耗,并提供更好的用户体验。本篇文章将详细讲解如何在Android中利用...
- `numColumns`:设定每行显示的列数,可设为固定值或`auto_fit`。 - `columnWidth`:每列的宽度,默认单位为像素。 - `horizontalSpacing`/`verticalSpacing`:设置列间和行间的间距。 - `stretchMode`:设置...
GridView继承自AbsListView,通过设置其`android:numColumns`属性来指定每行显示的列数。数据通常是通过Adapter来绑定到GridView上的,常见的Adapter有ArrayAdapter、CursorAdapter等,你可以根据实际需求选择合适的...
android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo 免费下载 给个好评!
在`getView()`方法中,我们将为每个单元格创建并返回一个View,通常是一个ImageView或TextView。 ### 3. 设置适配器 在Activity或Fragment中,我们需要实例化适配器并将其设置到GridView上: ```java GridView ...
`horizontalSpacing`和`verticalSpacing`定义了行与行、列与列之间的间距,`columnWidth`是每个单元格的宽度,`stretchMode`指定单元格如何拉伸以填充空间,`gravity`设置元素在GridView中的对齐方式。 接下来,...
适配器的`getView()`方法会为每个单元格创建一个View,并填充数据。 3. **设置布局参数**:在使用HorizontalGridView时,需要设置其布局参数,如宽度和高度。宽度应设置为`WRAP_CONTENT`,高度可以设定为固定值,...
在Android开发中,GridView是一种常见的布局管理器,它允许我们以网格形式展示数据。然而,标准的GridView默认是垂直滚动的,对于某些设计需求,如创建一个横向滚动的网格视图,就需要对GridView进行定制。这个主题...
在GridView中,我们通常会为每个单元格设置点击事件监听器(OnClickListener或OnItemClickListener)。当用户点击一个图片时,触发相应的事件,执行打开个人页面的操作。 3. **渐变特效**: 渐变特效是指在界面...
### GridView行的背景随鼠标改变而改变 #### 知识点概述 在Web开发中,尤其是在使用ASP.NET进行页面设计时,GridView控件是展示数据列表的一种非常实用且灵活的方式。用户界面的交互性和美观性对于提升用户体验至...
GridView继承自AbsListView,它会将数据集中的每个项显示为一个单元格,并且可以自动调整列的数量以适应屏幕宽度。默认情况下,用户通过垂直滚动浏览GridView中的所有项目。 为了实现横向滑动的GridView,我们可以...
你可以为每个item创建一个记录,包含其原始位置和当前位置。当应用启动时,从数据库加载这些信息并根据新的顺序重新填充`GridView`。 6. **适配器更新:** 当item位置改变时,需要通知适配器进行更新。通过调用`...
同时,Android框架提供了内置的动画API,如AlphaAnimation、RotateAnimation等,可以为GridView添加平滑过渡效果。 9. **动态加载与无限滚动** 对于大数据集,可以实现分页加载,当用户滚动到底部时,加载更多数据...
为了将这两个功能整合到一起,你可能需要在GridView的每一行中都包含这样一个进度条组件,并根据需要启动或停止进度条动画。比如,当用户点击删除叉号时,进度条开始动画,表示删除过程正在进行,直到数据从列表中...
在Android开发中,GridView是一种常用的布局控件,它允许数据以网格的形式展示,通常用于创建类似照片库或应用列表的界面。"android gridview多选删除"是一个专题,主要涉及如何实现GridView中的多选功能,并支持...
文章是参考博客http://blog.csdn.net/eastmount/article/details/41808179完成,主要讲述通过GridView控件点击加号图片动态添加本地相册图片,点击图片可以删除已添加图片。同时界面比较美观。 免费资源,希望对大家...
默认情况下,GridView会按照每行固定的列数进行排列。如果需要自定义布局,可以通过自定义布局参数或覆盖measure和layout方法来实现。 总结起来,"Android GridView分组带下拉刷新"是一个综合性的课题,涉及到...
实现GridView的横向滑动,默认为纵向滑动,主要目标实现GridView中两个或多个相邻item的合并效果,满足项目的UI设计,同时解决了item选中放大被其他item遮挡的问题;用法简单,一目了然,可供参考
Adapter的getCount()方法返回按钮的数量,getView()方法则为每个按钮创建并返回一个View对象。 接着,每个单元格通常会是一个Button控件,通过设置其文本属性来显示按钮上的数字或符号。为了实现点击事件,每个...