带预览的图片浏览器

GridView的简单学习

package com.crazyit.ui.adapterview;

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

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 带预览的图片浏览器
 */
public class GridviewActivity extends AppCompatActivity {

    private GridView grid;
    private ImageView image;

    //创建一个图片显示资源数组
    int[] imageId = new int[]{
            R.drawable.bomb5, R.drawable.bomb6,R.drawable.bomb7,
            R.drawable.bomb8, R.drawable.bomb9, R.drawable.bomb10,
            R.drawable.bomb11, R.drawable.bomb12, R.drawable.bomb13,
            R.drawable.bomb14, R.drawable.bomb15, R.drawable.bomb16};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gridview);

        //创建一个 List集合 对象是 Map
        List<Map<String, Object>> itemLists = new ArrayList<>();
        for (int i = 0; i < imageId.length; i++) {
            Map<String, Object> itemList = new HashMap<>();
            itemList.put("image", imageId[i]);
            // 上下注意看清楚
            itemLists.add(itemList);

            //获取显示图片的Imageview
            image = (ImageView) findViewById(R.id.imageView);

            //创建一个SimpleAdapter
            SimpleAdapter mAdapter = new SimpleAdapter(getApplication(), //上下文
                    itemLists,   //数据集合 List集合类型Map<String,Object>
                    //添加一个布局文件作为填充组件
                    R.layout.item_image,            //资源ID
                    //切记注意这里的“Key”千万不要写错,不然不会显示图片
                    new String[]{"image"},  //Map集合中的 Key值
                    new int[]{R.id.iv}  //显示条目的
            );
            //创建gridView对象
            grid = (GridView) findViewById(R.id.grid01);

            //为GridView 设置adapter
            grid.setAdapter(mAdapter);

            //wei 为列表条目添加监听事件
            grid.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    //显示被选中的图片
                    image.setImageResource(imageId[position]);
                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {

                }
            });

            //wei为列表条目添加 单击事件
            grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    image.setImageResource(imageId[position]);
                }
            });
        }
    }
}

布局文件

只是一个简单的垂直线性布局 上面是GridView 下面是 ImageView

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
android:orientation="vertical"
    android:gravity="center_horizontal"
    tools:context="com.crazyit.ui.adapterview.GridviewActivity">

    <!--定义一个gridView组件-->
    <GridView
        android:id="@+id/grid01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:horizontalSpacing="1dp"
        android:verticalSpacing="1dp"
        android:numColumns="4"
        android:gravity="center"
        ></GridView>
    <!--定义一个ImageView-->
    <ImageView
        android:layout_marginBottom="10dp"
        android:id="@+id/imageView"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_gravity="center_horizontal"
        />
</LinearLayout>

###每个GridView的条目显示
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    android:padding="2pt"
    >
    <ImageView
        android:background="#f00"
        android:id="@+id/iv"
        android:layout_width="50dp"
        android:layout_height="50dp"
        />
</LinearLayout>

“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值