zoukankan      html  css  js  c++  java
  • Android中的GridView

    GridView网格视图

         这个控件可以通过网格的形式来显示数据(文本、图像),且它的排列方式类似于矩阵,要采用行列的方式来布局子控件

      EG:

      第一步:先建立一个布局文件(gridview_layout.xml)并采用线性布局,并嵌入GridView控件

      第二步:在新建一个gridview_item.xml布局文件,采用线性布局,增加TextView和ImageView控件

      第三步:新建类MyActivity()邴继承Activity,并自定义一个适配器(MyCarAdapter)

    gridview_layout.xml的布局代码里面只写一个控件,那就是:

      <GridView

      android:id="@+id/gridview"

      android:Layout_width="fill_parent"

      android:Layout_height="Wrap_content"

      android:numColums="3"

      android:verticalSpacing="5dip"

      />

    gridview_item.xml的代码:在里面只写一个TextView控件和一个ImamgeView控件

    <TextView

      android:id="@+id/textview"

      android:Layout_width="fill_parent"

      android:Layout_height="Wrap_content"

      android:gravity="center"

      android:text=""(这句话也可以不写)

    />

    <ImageView

      android:id="@+id/imageview"

      android:Layout_width="fill_parent"

      android:Layout_height="Wrap_content"

      android:margin="20dip"

    />

      MyActivity()的代码如下:

    /**

    *演示GridView的使用

    *

    *  @author Catherine

    *

    **/

    //声明一个GridView视图

    private GridView mGridView;

    //然后再进入重写的方法onCreate()中

    //实例化mGridView;

    mGridView=(GirdView)findViewById(R.id.gridview);

    //设置标题·

    setTitle("GridView的使用');

    //调用方法

    bindAdapter();

    //创建一个方法,为了去绑定Adapter

    private void bindAdapter(){

    MyAdapter myadapter=new MyAdapter();

    mGridView.setAdapter(myadapter);

    }

    //自定义一个Adapter,可以灵活的控制Gridview布局显示

    Class  MyAdapter extend BaseAdapter{

    //图片的索引id

    int[] imgs={R.drawable.car1,R.drawable.car2,R.drawable.car3

          R.drawable.car4,R.drawable.car5,R.drawable.car6

          R.drawable.car7,R.drawable.car8,R.drawable.car9};

    }

    //定义一个字符串来初始化车名字

    String [] carNames{"本田","雷克萨斯","兰博基尼","法拉利","宝马","奥迪","丰田","保时捷","奔驰" };

    //构造方法(可以不用写)

    public MyAdapter(){}

    }

    //获取条目的数量(重写一个方法(getcount()))

    @Override

    public int getCount(){

    return imgs.length;

    }

    //返回子控件的内容

    @Override

    public  Object getItem(int position)

    {

    return imgs[position];

    }

    @Override

    public Object getItemId(int position)

    {

    return position;

    }

    //重新加载View的方法

    @Overvide

    public View getView(int position,View convertView,ViewGroup parent)

    {

    ImageView imageview=null;

    if(convertView==null){

    //通过LayoutInflater类来加载布局,返回一个View的实例对象

    convertView=LayoutInflater.from(MyActivity.this).inflate(R.layout.gridview_item,null);

    }

    //通过convetView调用其findviewById方法根据其id返回相应的控件

    imageview=(ImageView)findviewById(R.id.imageview);

    TextView .setImageResource(imgs[position]);

    TextView textview=(TextView)convertView.findviewById(R.id.textview);

    textview.setText(carNames[position]);

    return convertView;

    }

    一切只是为了充实自己!!stay hungry and stay foolish!!
  • 相关阅读:
    Android:实现手势滑动的事件处理方法
    Android开发——跟随手指的小球实现
    android 关于setWidth()和setHeight()没反应的问题
    Android 设置 横屏 竖屏
    Android给TextView设置透明背景、圆角边框
    android 为TextView添加边框
    C++实现RTMP协议发送H.264编码及AAC编码的音视频
    视频编码器
    HTTP Live Streaming直播(iOS直播)技术分析与实现
    nginx上搭建HLS流媒体服务器
  • 原文地址:https://www.cnblogs.com/Catherine-Brain/p/William_Catherine_Brain.html
Copyright © 2011-2022 走看看