java
package com.aaa.testm2;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
public class MainActivity extends AppCompatActivity {
// 定义一个整型数组,存储所有美女化妆图片的资源ID
// 这就像是餐厅准备的菜品图片
private int [] picture = new int[]{R.drawable.makeup_girl_00,
R.drawable.makeup_girl_01,
R.drawable.makeup_girl_02,
R.drawable.makeup_girl_03,
R.drawable.makeup_girl_04,
R.drawable.makeup_girl_05};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 设置活动的布局文件,就像布置餐厅的餐桌
// 从布局中找到 GridView 控件,这是我们的菜单板
GridView gridView = findViewById(R.id.gridView);
// 创建一个列表,用于存储所有要展示的数据
// 每个数据项是一个 Map,就像菜单上的每道菜都有名字和图片
List<Map<String, Object>> listitem = new ArrayList<Map<String,Object>>();
// 遍历图片数组,为每张图片创建一个数据项并添加到列表中
// 就像把每道菜的信息写在菜单上
for(int i = 0; i < picture.length; i++){
Map<String, Object> map = new HashMap<>(); // 创建一个数据项
map.put("image", picture[i]); // 给数据项添加一个键值对,键是"image",值是图片ID
listitem.add(map); // 将数据项添加到列表中
}
// 创建一个 SimpleAdapter,它是数据和视图之间的桥梁
// 就像一个翻译,把菜单内容翻译成菜单板能理解的格式
// 参数说明:
// this - 当前活动上下文
// listitem - 数据源,包含所有图片信息
// R.layout.ceil - 每个数据项的布局文件,就像每个菜品在菜单上的展示样式
// new String[]{"image"} - 要展示的数据的键名数组
// new int[]{R.id.image} - 布局中对应的视图ID数组,用于放置数据
SimpleAdapter simpleAdapter = new SimpleAdapter(this, listitem, R.layout.ceil,
new String[]{"image"}, new int[]{R.id.image});
// 将适配器设置给 GridView,让 GridView 知道如何展示数据
// 就像把打印好的菜单挂在菜单板上
gridView.setAdapter(simpleAdapter);
}
}
XML
<?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:id="@+id/image"
android:layout_width="100dp"
android:layout_height="75dp"/>
</LinearLayout>
步骤总结:
- 准备图片资源
- 创建活动类
- 设置布局
- 获取 GridView 控件
- 创建数据列表
- 将图片添加到数据列表
- 创建适配器
- 将适配器设置给 GridView
参数解释:
- picture 数组:存储所有美女图片的 ID,就像每道菜的照片。
- gridView:菜单板,用来排列和展示所有图片。
- listitem:菜单内容,存储每道菜的信息(名字和图片)。
- SimpleAdapter:菜单打印机,把菜单内容转换为菜单板能理解的格式。
- R.layout.ceil:每个菜品在菜单上的展示样式(单个格子的布局)。
- R.id.image:每个格子中放置图片的位置(图片框)。