Android基础——网格视图和适配器

Posted zsbenn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android基础——网格视图和适配器相关的知识,希望对你有一定的参考价值。

额外新建一个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);
    }
}

 

以上是关于Android基础——网格视图和适配器的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中使用imageloader释放位图内存?

Android10.3 网格视图(GridView)

Android - 使用片段和简单的光标适配器填充列表视图

片段内的网格适配器不起作用

Android,从其他片段返回的空列表视图

在android的片段中设置列表视图适配器