Android控件gridview实现单行多列横向滚动效果

本文实例为大家分享了安卓实现单行多列横向滚动,供大家参考,具体内容如下

<GridLayout
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:columnCount="1" >

    <HorizontalScrollView
     android:layout_width="match_parent"
     android:layout_height="88dp"
     android:layout_column="0"
     android:layout_gravity="left|bottom"
     android:layout_row="0" >

     <LinearLayout
      android:id="@+id/linearLayout_gridtableLayout"
      android:layout_width="1000dp"
      android:layout_height="79dp"
      android:orientation="horizontal" >

      <GridView
       android:id="@+id/gridview1"
       android:layout_width="600dp"
       android:layout_height="match_parent"
       android:background="#ffffff"
       android:columnWidth="100dp"
       android:gravity="center"
       android:horizontalSpacing="1dp"
       android:numColumns="6"
       android:scrollbarAlwaysDrawHorizontalTrack="true"
       android:scrollbarAlwaysDrawVerticalTrack="true"
       android:scrollbars="horizontal|vertical"
       android:verticalSpacing="1dp" />
    </LinearLayout>
    </HorizontalScrollView>

</GridLayout>

指定其中LinearLayout的宽度就能够实现你GridView的长宽变化,如果它的长超过屏幕,则自动添加水平滚动条。

private int[] icon = { R.drawable.camera, R.drawable.wifi, R.drawable.temperature,
   R.drawable.lamp, R.drawable.wechat, R.drawable.mic, };
 private String[] iconName = { "摄像头", "网络", "温湿度", "电器", "微信", "语音" };

 private GridView gview;
 private List<Map<String, Object>> data_list;
 private SimpleAdapter sim_adapter;

 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

//gridview数据适配器
  gview = (GridView) findViewById(R.id.gridview1);
  //新建List
  data_list = new ArrayList<Map<String, Object>>();
  //获取数据
  getData();
  //新建适配器
  String [] from ={"image","text"};
  int [] to = {R.id.image,R.id.title};
  sim_adapter = new SimpleAdapter(this, data_list, R.layout.items, from, to);
  //配置适配器
  gview.setAdapter(sim_adapter);

 }

  public List<Map<String, Object>> getData(){
   //cion和iconName的长度是相同的,这里任选其一都可以
   for(int i=0;i<icon.length;i++){
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("image", icon[i]);
    map.put("text", iconName[i]);
    data_list.add(map);
   }

   return data_list;
  }

Fragment里:

oncreate里边初始化数据,oncreateview里边初始化gridview和绑定适配器

public View onCreateView(LayoutInflater inflater, ViewGroup container,
     Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.gridview,container, false);

    gridview = (GridView) view.findViewById(R.id.gridview1);
     //新建List
    data_list = new ArrayList<Map<String, Object>>();

  //http://www.cnblogs.com/xiaobo-Linux/ qq463431476
    //获取数据
    getData();
    //新建适配器
    String [] from ={"image","text"};
    int [] to = {R.id.image,R.id.title};
    sim_adapter = new SimpleAdapter(getActivity(), data_list, R.layout.items, from, to);
    //配置适配器
    gridview.setAdapter(sim_adapter); 

    return view;
   }
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

 } 

 // http://www.cnblogs.com/xiaobo-Linux/ qq463431476

  public List<Map<String, Object>> getData(){
  //cion和iconName的长度是相同的,这里任选其一都可以
  for(int i=0;i<icon.length;i++){
   Map<String, Object> map = new HashMap<String, Object>();
   map.put("image", icon[i]);
   map.put("text", iconName[i]);
   data_list.add(map);
  }

  return data_list;
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android 组件Gallery和GridView示例讲解

    Android Gallery和GridView组件: Gallery 画廊 Gallery是一个内部元素可以水平滚动,并且可以把当前选择的子元素定位在它中心的布局组件. 我们还是直接看看例子的运行效果. 下面上代码,相关解释都放在代码里了. 1.建立一个新项目 HelloGallery 2.拷贝wallpaper_0.jpg-wallpaper_9.jpg 10个图片文件到res/drawable目录 3.res/layout/main.xml文件的内容如下: <?xml version=&quo

  • android中GridView的用法示例

    在Android程序设计中GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图.GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用,类似这种的方法本文不再重复,本文介绍的GridView用法跟之前介绍过的ListView极其类似. 我们先来看看本文代码运行的结果: 本文需要添加/修改3个文件:main.xml.nig

  • Android开发之组件GridView简单使用方法示例

    本文实例讲述了Android开发之组件GridView简单使用方法.分享给大家供大家参考,具体如下: 案例:简单的图片浏览器,保存图片到相册 保存图片到相册 方法代码:https://www.jb51.net/article/158668.htm 废话不多说先上效果: 具体实现: 首先是布局文件: 1.一个GridView(展示所有的图片) 2.一个ImageView(放选中的图片) <?xml version="1.0" encoding="utf-8"?&

  • Android中GridView插件的使用方法

    布局文件activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&q

  • Android开发之使用GridView展示图片的方法

    本文实例讲述了Android使用GridView展示图片的方法.分享给大家供大家参考,具体如下: 今天说说GridView的使用. 所谓GvidView翻译过来就是网格布局:是一个ViewGroup以网格显示它的子视图(view)元素,即二维的.可滚动的网格.网格元素通过ListAdapter自动插入到网格. 这个GridView用处特别多,我这里是用来展示广告的.2*3的广告位置. 废话少说先看个效果图,有图就可以说个XX,对吧,大家都懂的. 大家可以看到搜索下面的那6个块,效果布局还行吧,哈

  • Android GridView仿微信朋友圈显示图片

    最近项目要求上传多图并且多图显示,而且要规则的显示,就像微信朋友圈的图片显示一样. 利用GridView再适合不过了,GridView可以动态加载图片的数量,而且还比较规律,下面说一下自己的思路: 1.获取网络图片 2.初始化gridview,自定义适配器 3.根据图片数量设置gridview的列数 4.更新适配器 下面贴上部分源码并给大家解析一下 一.首先是GridView的item <com.view.SquareLayout xmlns:android="http://schemas

  • Android GridView实现滚动到指定位置的方法

    当一个列表项目很多,并且每个项目可以进入到其它Activity或者Fragment时,保存之前列表的位置是一个比较不错的功能, 今天研究了一下怎么保存浏览位置,发现GridView和它的父类中有4个相关的方法: 复制代码 代码如下: public void smoothScrollToPosition (int position) 滚动到position指定的位置,api level 11之下可用 *当你滚动完后,返回列表,能正常滚动,但是你再次从列表的项目返回后,滚动失效,就是只能滚动一次,我

  • android ListView和GridView拖拽移位实现代码

    关于ListView拖拽移动位置,想必大家并不陌生,比较不错的软件都用到如此功能了.如:搜狐,网易,百度等,但是相比来说还是百度的用户体验较好,不偏心了,下面看几个示例:             首先说一下:拖拽ListView的item就不应该可以任意移动,只应该在ListView所在的范围内,而网易的你看看我都可以移动到状态栏了,虽然你做了处理,但是用户体验我个人感觉不好,在看看百度的,不仅控制了移动范围,更不错的百度的移动起来会时时的换位,看起来相当的形象,所以我认为这样相当的棒.说明一点

  • Android开发实现横向列表GridView横向滚动的方法【附源码下载】

    本文实例讲述了Android开发实现横向列表GridView横向滚动的方法.分享给大家供大家参考,具体如下: Android 横向列表实现,可左右滑动,如下图 1. 主界面布局代码:activity_main.xml a.包裹HorizontalScrollView控件是GirdView横向滚动的基本条件 b.GirdView外包裹LinearLayout是java代码中参数设置的必要条件 <?xml version="1.0" encoding="utf-8"

  • Android GridView扩展仿微信微博发图动态添加删除图片功能

    在平时的开发中,我们会看到不管是微信发朋友圈照片还是微博发布新鲜事,添加图片的时候都是选完后面还有个+号再去选择图片,这样的话比较方便用户去添加图片,有的右上角还有个-号方便用户去删除图片,而一般用户选择的图片多少都是不定的,我们只限制最大张数,我们用gridview去实现,代码可能比较简单,高手请略过. 0.效果图 1.准备资源图片 添加图片的+号图片 删除图片的图片 2.可设置限制用户选择最大张数 /** * 可以动态设置最多上传几张,之后就不显示+号了,用户也无法上传了 * 默认9张 */

随机推荐