Android中GridView以表格形式显示多张图片(仿桌面)

来源:互联网 发布:禅道 mysql数据库连接 编辑:程序博客网 时间:2024/06/04 21:46

编写不易,如有转载,请声明出处: 梦回河口:http://blog.csdn.net/zxc514257857/article/details/52762665

GridView可以理解为显示多列的ListView,这次就利用GridView做一个仿桌面的案例。GridView和ListView的使用相同,都基本使用以下三步走:设置数据源,设置适配器,设置监听器。

1,Demo展示图片
这里写图片描述
2,布局代码

//(layout)activity_main.xml<LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:background="#000"    tools:context="com.test.gridview.MainActivity">    <GridView        android:id="@+id/gridView"        android:numColumns="3"        android:layout_marginTop="20dp"        android:horizontalSpacing="30dp"        android:verticalSpacing="30dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/>    <!--注 numColumns 表示GridView的列数           horizontalSpacing  表示水平间距           verticalSpacing  表示垂直间距        --></LinearLayout>-------------------------------------------------------------------//(layout)gridview_item.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:background="#000"              android:gravity="center">    <ImageView        android:id="@+id/image"        android:src="@mipmap/address_book"        android:layout_width="60dp"        android:layout_height="60dp"/>    <TextView        android:id="@+id/text"        android:layout_marginTop="6dp"        android:text="文字"        android:textColor="#fff"        android:layout_centerHorizontal="true"        android:layout_below="@+id/image"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/></LinearLayout>

3,Activity代码

//MainActivityimport android.content.Context;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.SimpleAdapter;import android.widget.Toast;import java.util.HashMap;import java.util.LinkedList;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity {    private Context mContext = MainActivity.this;    private GridView mGridView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initData();    }    private void initView(){        mGridView = (GridView) findViewById(R.id.gridView);    }    private void initData(){        List<Map<String , Object>> list = new LinkedList<>();        int[] icon = {R.mipmap.address_book , R.mipmap.calendar , R.mipmap.camera , R.mipmap.clock , R.mipmap.games_control , R.mipmap.messenger        , R.mipmap.ringtone , R.mipmap.settings , R.mipmap.speech_balloon , R.mipmap.weather , R.mipmap.world , R.mipmap.youtube};        final String[] iconName ={"通讯录" , "日历" , "照相机" , "时钟" , "游戏" , "短信" , "铃声" , "设置" , "语音" , "天气" , "浏览器" , "视频"};        // 在for循环里填充数据        for(int i = 0 ; i < icon.length ;i++){            Map<String , Object> map = new HashMap<>();            map.put("image" , icon[i]);            map.put("text" , iconName[i]);            list.add(map);        }        SimpleAdapter adapter = new SimpleAdapter(this, list , R.layout.gridview_item ,                new String[]{"image" , "text"} , new int[]{R.id.image , R.id.text});        mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {                Toast.makeText(mContext , "正在进入" + iconName[position] + "应用" , Toast.LENGTH_SHORT).show();            }        });        mGridView.setAdapter(adapter);    }}

Demo下载请移步:

因本人才疏学浅,如博客或Demo中有错误的地方请大家随意指出,与大家一起讨论,共同进步,谢谢!

1 0
原创粉丝点击