GridView网格视图

GridView 网格视图

首先在MainActivity中设置一个GridView的点击事件

代码如下:

    package net.nyist.lenovo.mytest;

    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;

    import net.nyist.lenovo.mytest.GridView.GridViewActivity;

    public class MainActivity extends AppCompatActivity {

        private Button mBtnGridView;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mBtnGridView = (Button) findViewById(R.id.btn_GridView);
            setListeners();
        }

        public void setListeners(){
            OnClick onClick = new OnClick();
            mBtnGridView.setOnClickListener(onClick);

        }
        private class OnClick implements View.OnClickListener{

            @Override
            public void onClick(View v) {
                Intent intent = null;
                switch (v.getId()){
                    case R.id.btn_GridView:
                        intent = new Intent(MainActivity.this,GridViewActivity.class);
                        break;
                }
                startActivity(intent);
            }
        }

    }

activity_main.xml的代码如下:

    <?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:orientation="vertical">

        <Button
            android:id="@+id/btn_GridView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="GridView"
            />
    </LinearLayout>

接着创建MyGridViewAdapter

package net.nyist.lenovo.mytest.GridView;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;

import net.nyist.lenovo.mytest.R;

/**
 * Created by LENOVO on 2017/9/3.
 */

public class MyGridViewAdapter extends BaseAdapter {

    private Context mContext;
    private LayoutInflater mLayoutInflater;
    public MyGridViewAdapter(Context context){
        this.mContext = context;
        mLayoutInflater = LayoutInflater.from(context);
        //从一个Context中,获得一个布局填充器,这样你就可以使用这个填充器来把xml布局文件转为View对象了。
        /*这里举个例子理解:
        *   加载布局管理器
            LayoutInflater inflater = LayoutInflater.from(context);
            将xml布局转换为view对象
            convertView = inflater.inflate(R.layout.item_myseallist,parent, false);
            利用view对象,找到布局中的组件
            convertView.findViewById(R.id.delete);// 删除
        * 
        * */
    }

    @Override
    public int getCount() {
        return 10;
    }

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

    @Override
    public long getItemId(int position) {
        return 0;
    }
    static class ViewHolder{
        public ImageView imageView;
        public TextView textView;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView == null){
            convertView = mLayoutInflater.inflate(R.layout.layout_grid_item,null);
            holder = new ViewHolder();
            holder.imageView = (ImageView) convertView.findViewById(R.id.iv_grid);
            holder.textView = (TextView) convertView.findViewById(R.id.tv_title);
            convertView.setTag(holder);

        }else {
            holder = (ViewHolder) convertView.getTag();
        }
        //赋值
        holder.textView.setText("花");
        Glide.with(mContext).load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1504417165385&di=5250699a8b49ecabf42d32658037dee2&imgtype=0&src=http%3A%2F%2Fpic.58pic.com%2F58pic%2F13%2F17%2F24%2F29a58PIC6ux_1024.jpg").into(holder.imageView);
        //这里运用第三方库glide
        return convertView;
    }
}

GridViewActivity.java

package net.nyist.lenovo.mytest.GridView;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;

import net.nyist.lenovo.mytest.R;

public class GridViewActivity extends AppCompatActivity {

    private GridView mGv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grid_view);
        mGv = (GridView) findViewById(R.id.gv);
        mGv.setAdapter(new MyGridViewAdapter(GridViewActivity.this));
        mGv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(GridViewActivity.this, "点击 pos:"+position, Toast.LENGTH_SHORT).show();
            }
        });
        mGv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(GridViewActivity.this, "点击 pos:"+position, Toast.LENGTH_SHORT).show();
                return true;
            }
        });
    }
}

activity_gridview.xml

<?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:orientation="vertical"
    android:padding="15dp"
    >
    <GridView
        android:id="@+id/gv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="3"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp"
        >

    </GridView>


</LinearLayout>

记住加个网络权限:

<uses-permission android:name="android.permission.INTERNET"/>

效果图:
GridView

————来自天哥视频

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值