额外新建一个layout,用来布局ImageView组件
<?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"> <ImageView android:layout_width="100dp" android:layout_height="75dp" android:id="@ id/imageView" /> </LinearLayout>
网格视图的布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <GridView android:id="@ id/gridView" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="3"> </GridView> </RelativeLayout>
java的调用,使用了适配器SimpleAdapter,将ImageView通过适配器交给GridView
package com.example.myhighuiiii; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; 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 MainActivity extends AppCompatActivity { private int[] picture = new int[]{ R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d }; ImageView imageView = null; GridView gridView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gridView = (GridView) findViewById(R.id.gridView); //用一个List来存图片对象 List<Map<String,Object>> listItem = new ArrayList<Map<String, Object>>(); //把map对象添加到list中 for(int i=0;i<picture.length;i ){ Map<String,Object> map = new HashMap<String,Object>(); map.put("image",picture[i]); listItem.add(map); } //创建simpleAdapter对象 SimpleAdapter simpleAdapter = new SimpleAdapter(//构造器总共有五个参数 this,listItem,R.layout.celi,new String[]{"image"},new int[]{R.id.imageView}); //为网格视图设置适配器 gridView.setAdapter(simpleAdapter); } }