最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

android GridView控件的详细使用方法

Android 太平洋学习网 浏览 评论

android GridView控件就像一个九宫格布局,虽然有点类似TableView,但是和android TableView是两个东西,下面将使用GridView来编写一个案例。

1:在activity_main.xml中添加一个GridView控件,用于显示九宫格,代码如下。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" //垂直对齐
    tools:context="com.baidu.gridviewdemo.MainActivity">

    <GridView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="auto_fit"    //自动填充
        android:verticalSpacing="10dp"   //垂直间距
        android:horizontalSpacing="10dp" //水平间距
        android:columnWidth="90dp"       //九宫格列宽
        android:stretchMode="columnWidth" 
        android:gravity="center"         //居中
        android:id="@+id/myGridView"/>
</LinearLayout>

2:在MainActivity.java中为GridView填充图片,并为每个gridview添加点击事件,弹出当前图片所在的position角标位置,代码如下。

package com.baidu.gridviewdemo;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Integer[] imageIDs = {
            R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,
            R.mipmap.ic_launcher
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        GridView gridView = (GridView) findViewById(R.id.myGridView);
        //将图片设置到GridView九宫格中
        gridView.setAdapter(new MyImageAdapter(this));
        //给GridView添加点击事件
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(getApplicationContext(),"你选择了第"+position+"角标处图片",
                        Toast.LENGTH_SHORT).show();
            }
        });
    }
    //实现九宫格view里面的方法
    public class MyImageAdapter extends BaseAdapter{
        //传入context对象
        private Context con;
        //构造方法
        public MyImageAdapter(Context context){
            con = context;
        }
        @Override
        public int getCount() {
            return imageIDs.length;
        }

        @Override
        public Object getItem(int position) {
            return position;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        //将数组中的图片放置到九宫格view中
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView;
            if (convertView == null){
                imageView = new ImageView(con);
                //imageview的宽度,高度
                imageView.setLayoutParams(new GridView.LayoutParams(85,85)); 
                //设置imageview内部边缘左上右下距离
                imageView.setPadding(5,5,5,5);
            }else{
                imageView = (ImageView)convertView;
            }
            //为imageView设置图片
            imageView.setImageResource(imageIDs[position]);
            return imageView;
        }
    }
}

3:运行之后看gridview控件的效果,如图。

QQ截图20170907222552.png

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/android/2017/0907/208.html

    与本文相关的文章

    发表我的评论
    取消评论

    表情

    您的回复是我们的动力!

    • 昵称 (必填)

    网友最新评论