九宫格

本文介绍如何在Android应用中使用GridView展示一组图片。通过定义GridView布局并创建对应的item布局文件,利用SimpleAdapter填充数据,实现了图片网格的展示效果。

主页面,添加一个GridView

<GridView
    android:id="@+id/gridview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:horizontalSpacing="1dp"
    android:verticalSpacing="1dp"
    android:numColumns="3"
    android:gravity="center">
</GridView>

新建一个item

 <?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="80dp"
    android:layout_height="80dp"
    android:scaleType="fitXY" />
</LinearLayout>

功能实现

package cn.edu.niit.nine;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

GridView gv;
//将图片Id放入数组中去
int []imageIds = new int[] {
        R.drawable.g1,R.drawable.g2, R.drawable.g3,
        R.drawable.g4,R.drawable.g5, R.drawable.g6,
        R.drawable.g7,R.drawable.g8, R.drawable.g9
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    list();
    //定义一个list来存放多个item元素
    ArrayList<Map<String, Object>> listItems = new ArrayList<Map<String,Object>>();
    for (int i = 0; i < imageIds.length; i++) {
        Map<String, Object> item = new HashMap<>();
        item.put("image", imageIds[i]);
        listItems.add(item);
    }
    //创建simpleAdapter来设置元素
    SimpleAdapter adapter = new SimpleAdapter(this, listItems, R.layout.item,
            new String[] {"image"}, new int[] {R.id.image});
    gv.setAdapter(adapter);

}

private void list() {
    gv = (GridView)findViewById(R.id.gridview);
}

}

实现图

1126546-20170507140226601-611104244.png

转载于:https://www.cnblogs.com/lmzjerk/p/6820689.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值