GridView-网格布局案例

         (1)图片1效果                                                                                                                  

 


(2)随机点击图片出现

    

(3)随机点击图片出现

  


页面布局content_main.xml用GridView显示
<? xml version= "1.0" encoding= "utf-8" ?>
<LinearLayout xmlns: android ="http://schemas.android.com/apk/res/android"
   android :orientation= "vertical"
    android :layout_width= "match_parent"
    android :layout_height= "match_parent"
    android :layout_gravity= "center_horizontal"
    >
    <GridView
        android :id= "@+id/gridView01"
        android :layout_width= "match_parent"
        android :layout_height= "wrap_content"
        android :horizontalSpacing= "1pt"
        android :verticalSpacing= "1pt"
        android :numColumns= "4"
        android :gravity= "center" />
        <ImageView
            android :id= "@+id/imageView"
            android :layout_width= "100dp"
            android :layout_height= "100dp"
            android :layout_gravity= "center_horizontal" />
</LinearLayout>



在GridViewTest里用SimpleAdapter将图片显示在content_main.xml页面上
package com.eson.gridview ;

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 GridViewTest extends AppCompatActivity {
    private ImageView imageView;
    private GridView grid ;
    int[] imageIds =new int []{
            R.drawable. bomb1, R.drawable. bomb2, R.drawable. bomb3,
            R.drawable. bomb4 , R.drawable. bomb5 , R.drawable. bomb6 ,
            R.drawable. bomb7 , R.drawable. bomb8 , R.drawable. bomb9 ,
            R.drawable. bomb10 , R.drawable. bomb11 , R.drawable. bomb12
    } ;

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super .onCreate(savedInstanceState) ;
        setContentView(R.layout. content_main );
        //创建一个List对象,List对象的元素是Map
        List<Map<String , Object>> listItems= new ArrayList<>() ;
        for ( int i = 0 ; i < imageIds . length; i++) {
            Map<String ,Object> map= new HashMap<>();
           map.put( "image" ,imageIds [i]) ;
            listItems.add(map) ;
        }
        //获取显示图片的ImageView
        imageView = (ImageView) findViewById(R.id. imageView );
        //创建一个SimpleAdapter
        SimpleAdapter simpleAdapter= new SimpleAdapter(this, listItems ,R.layout. content_main ,new String[]{ "image"} ,new int []{R.id. imageView}) ;
        grid = (GridView) findViewById(R.id. gridView01 );
        //为GridView设置Adapter
        grid .setAdapter(simpleAdapter) ;
        //添加列表项被选中的监听器
        grid .setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected (AdapterView<?> parent , View view , int position, long id) {
                imageView.setImageResource( imageIds [position]);
            }

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

            }
        });
        //添加列表项被单击的监听器
        grid .setOnItemClickListener( new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick (AdapterView<?> parent , View view , int position, long id) {
               //显示被单击的图片
                imageView.setImageResource( imageIds [position]);
            }
        });
    }
}


 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值