`

Android_GridView_GridView概述及实现水平滑动

 
阅读更多
1.GridView简介
GridView是ViewGroup子类,主要用于显示在一个二维可滚动的网格,比如九宫格。使用gridview和listview类似,都是使用ListAdapter来填充数据加载布局。
2.XML Attributes
(1).android:columnWidth
主要用来指定每一列的宽度,使用该属性时应该注意和后面的拉伸模式相关联。如果拉伸模式为spacingWidth,则该属性必须指定;如果拉伸模式为columnWidth指定该属性无效。
(2).android:gravity
用于指定每个item的对其方式起始位置,当有多个是可以使用'|'隔开
(3).android:horizontalSpacing
用于指定每一列的之间的间距。注意:如果拉伸模式为spacingWidth,则该值设定无效
(4).android:numColumns
每一列的item数目
(5).android:verticalSpacing
用于指定每一行的之间的间距。
(6).android:stretchMode(***)
如果以列间距拉伸,则不需要指定列之间的间距;如果以列的等宽度拉伸,则不需要指定列的宽度。
常量 值 描述
none
0
拉伸被禁用,不可以被拉伸
spacingWidth
1
每一列之间的间距会被拉伸,因此使用该拉伸模式时,必须指定columnWidth,而指定horizontalSpacing就会无效,即不需要先考虑horizontalSpacing
columnWidth
2
每一列是等宽度,只需要指定numColumns和horizontalSpacing,即先指定columnWidth就是无效的
spacingWidthUniform
3
每一列的间距均匀拉伸。拉伸被禁用,不可以被拉伸
3.GridView水平滚动

private GridView gridView; 
private float density; 
  
private int listSize = 10; 
  
@Override
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
  
    gridView = (GridView) findViewById(R.id.gridView1); 
    gridView.setAdapter(new MyAdapter()); 
  
      
    // 得到像素密度 
    DisplayMetrics outMetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(outMetrics); 
    density = outMetrics.density; // 像素密度 
  
    // 根据item的数目,动态设定gridview的宽度,现假定每个item的宽度和高度均为100dp,列间距为5dp 
    ViewGroup.LayoutParams params = gridView.getLayoutParams(); 
    int itemWidth = (int) (100 * density); 
    int spacingWidth = (int) (5*density); 
      
    params.width = itemWidth*listSize+(listSize-1)*spacingWidth; 
    gridView.setStretchMode(GridView.NO_STRETCH); // 设置为禁止拉伸模式 
    gridView.setNumColumns(listSize); 
    gridView.setHorizontalSpacing(spacingWidth); 
    gridView.setColumnWidth(itemWidth); 
    gridView.setLayoutParams(params); 
  
    /*
     * 使用这种方式也有很大的弊端,由于动态指定了gridview的宽度,导致了gridview的所有item,getView()都会被调用,
     * 如果item很大时,就不能使用这种方式了~~~
     */
    gridView.setOnItemClickListener(new OnItemClickListener() { 
        @Override
        public void onItemClick(AdapterView<?> parent, View view, 
                int position, long id) { 
            System.out.println(position); 
        } 
    }); 
}


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" > 
  
    <HorizontalScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scrollbars="none" > 
  
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" > 
  
            <GridView
                android:id="@+id/gridView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" > 
            </GridView> 
        </LinearLayout> 
    </HorizontalScrollView> 
  
</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_green_light"
    android:gravity="center"
    android:orientation="vertical" > 
  
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/main_item_ad" /> 
  
</LinearLayout>
分享到:
评论

相关推荐

    ViewPager+GridView实现首页导航栏布局分页效果

    `ViewPager` 和 `GridView` 结合使用,可以实现首页导航栏布局的分页效果,这种设计模式常见于许多应用的启动页面,如新闻应用、电商应用等,提供多类别内容的滑动浏览体验。以下将详细介绍如何通过 `ViewPager` 和 ...

    GridView demo 实例

    1. GridView概述:GridView继承自AbsListView,它将数据项按行和列的方式排列,允许用户滚动浏览和选择项目。通过适配器(Adapter)来填充数据,通常与ArrayList或Cursor一起使用。 2. 布局文件配置:在XML布局文件...

    Android代码-GridView拖拽实例源码.zip

    1. GridView概述: GridView继承自AbsListView,它会将数据集中的每个条目渲染为一个单元格,按照指定的列数进行排列。默认情况下,GridView是竖向滚动的,但可以通过设置横向滚动。 2. 实现拖放功能: 要实现...

    ListView和GridView的上拉加载下拉刷新

    一、ListView与GridView概述 1. ListView:ListView是一个可以滚动的视图,它允许用户在一个垂直列表中查看项目。每个列表项都可以由不同的视图表示,可以通过Adapter来填充数据。ListView支持多种视图类型,例如头...

    ListView嵌套GridView

    2. **GridView概述**: - GridView是一种网格布局的列表控件,可以水平或垂直排列多个子视图,常用于展示图片或图标。 - 同样,GridView也需要一个Adapter来填充数据,其布局由列数决定,每个单元格可以自定义样式...

    GridView绝技,值得一看

    5. **水平滑动**:虽然GridView默认是垂直滚动,但通过自定义布局管理器,可以实现水平方向的滑动效果。 6. **动画效果**:利用Animation API,可以在数据添加、删除或更新时添加各种动态效果,增强用户体验。 7. ...

    Android_典型UI欣赏_第一季

    - 支持水平滑动切换标签。 - **应用场景**: - 电商应用的商品分类。 - 新闻类应用的频道选择。 - **设计要点**: - 标签页的文字简短明了。 - 滑动操作流畅,无卡顿感。 #### 七、SegmentedRadioButton **...

    Android应用源码之Android Launcher 桌面分页滑动代码.zip

    这个"Android应用源码之Android Launcher 桌面分页滑动代码"压缩包,显然是为了帮助开发者深入理解Android Launcher的实现原理,特别是关于桌面分页滑动的部分。下面将详细解析这个主题。 一、Android Launcher概述...

    ListViewGridView填充效果

    - **GridView概述**:GridView是类似ListView的控件,但它在水平方向上分多个列,可以展示二维网格的列表项。 - **布局配置**:与ListView相似,GridView也需要一个Item模板,但每个Item会占据网格中的一个单元格...

    Android控件大全以及各布局控件的使用方式

    ### Android控件大全及各布局控件的使用详解 #### 一、Android控件概述 Android控件是指在Android应用程序中用于实现用户界面的各种组件。这些控件包括但不限于按钮、文本框、列表视图等。熟悉并掌握这些控件对于...

    PullToRefreshGridView添加头部, GridView添加头部head,下拉刷新上拉加载的girdView,listView

    二、GridView概述 GridView是Android中的一个控件,它允许以网格形式展示数据。每个单元格可以是一个自定义的视图,通常用于展示列表数据,比如图片、文字等。通过适配器(Adapter)将数据绑定到GridView上,实现...

    android实现相册功能

    在Android开发中,实现相册功能是一项常见的任务,它涉及到图片的选择、预览以及上传等操作。本篇文章将深入探讨如何在Android应用中构建一个基本的相册功能,结合源码分析和工具的使用。 首先,我们需要理解...

    Android九宫格源码

    1. GridView概述:GridView继承自AbsListView,是Android系统提供的一个可以显示多行多列数据的控件。它可以自动调整每个单元格的大小,以适应不同的屏幕尺寸和设备方向。 2. Adapter原理:GridView的工作机制依赖...

    Android开发教程笔记完全版 pdf

    一、Android系统概述 Android是由Google主导的开源操作系统,基于Linux内核。它的开放性使得开发者可以自由地定制用户界面,开发各种各样的应用程序。Android系统主要由应用程序层、应用程序框架层、系统库和服务层...

    Android入门到精通详解(完整书签)

    - **SkeletonApp的源文件结构及编译结构**:分析更复杂的程序结构,加深对Android应用程序构建的理解。 ##### 第5章:Android应用程序的内容 - **Android应用程序的概念性描述**:深入探讨了Android应用程序的设计...

    MyGridView

    1. GridView概述:GridView继承自ViewGroup,是Android中一种特殊的视图容器,它可以将子视图以行列的形式排列,用户可以通过横向滑动查看更多的内容。 2. 布局文件配置:在XML布局文件中,通过`&lt;GridView&gt;`标签来...

    Android 中文 API——android.widget合集(中)(50篇)(pdf格式)

    15. **ViewPager**: 用于实现水平翻页效果的容器。 16. **AdapterView**: 提供了适配器模式,用于将数据绑定到UI组件。 17. **RecyclerView**: 一种更高效、灵活的列表视图,支持多种布局方式。 ### 使用技巧与注意...

    开始使用 Xamarin.Android 开发 Android 应用

    #### Xamarin.Android 概述 Xamarin.Android 是一个基于 .NET 的框架,允许开发者使用 C# 语言和 .NET Framework 构建高性能、原生的 Android 应用。它为开发者提供了丰富的 API 和工具集,能够与 Android 平台无缝...

    Android应用源码之完美!SlidingMenu jar包版demo!不用导包!兼容2.2.zip

    2. 滑动效果:SlidingMenu利用了Android的Scroller类来实现平滑的动画效果。Scroller提供了一种方式来计算和控制动画的缓动效果,使得菜单的滑出和滑入过程更加自然。 3. 兼容性:SlidingMenu为了确保在低版本的...

Global site tag (gtag.js) - Google Analytics