Android课程---如何用网格视图做出手机桌面APP

activity_test.xml

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/gv_1"
    android:numColumns="3"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:gravity="center"
    android:stretchMode="columnWidth">

    <!--android:numColumns="auto_fit" ,GridView的列数设置为自动
        android:columnWidth="90dp",每列的宽度,也就是Item的宽度
        android:stretchMode="columnWidth",缩放与列宽大小同步
        android:verticalSpacing="10dp",两行之间的边距,
        如:行一(NO.0~NO.2)与行二(NO.3~NO.5)间距为10dp
        android:horizontalSpacing="10dp",两列之间的边距。-->
</GridView>

activity_test2.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="4dp">

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerHorizontal="true"
        android:id="@+id/app_Image">
    </ImageView>
    <TextView
        android:layout_width="wrap_content"
        android:layout_below="@+id/app_Image"
        android:layout_height="wrap_content"
        android:text="TextView01"
        android:layout_centerHorizontal="true"
        android:id="@+id/app_Text">
    </TextView>

</RelativeLayout>

TestActicity.java

package com.hanqi.test3;

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 java.util.ArrayList;
import java.util.HashMap;

public class TestActivity extends AppCompatActivity {
    int[] imid;
    String[] name;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        GridView gv_1 =(GridView)findViewById(R.id.gv_1);

        imid = new int[]{R.drawable.apps,R.drawable.book,R.drawable.compass,R.drawable.contacts,
                R.drawable.driving,R.drawable.mail,R.drawable.maps,R.drawable.media,
                R.drawable.message,R.drawable.music,R.drawable.webs,R.drawable.youtube};
        name = new String[]{"APP","书","指南针","联系我们", "驾驶模式"
                ,"邮件","地图","媒体","信息","音乐","网络","电视"};

        //生成动态数组,并且转入数据
        ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
        for(int i=0;i<imid.length;i++)
        {
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("ItemImage", imid[i]);//添加图像资源的ID
            map.put("ItemText",name[i]);//按序号做ItemText
            lstImageItem.add(map);
        }
        //生成适配器的ImageItem <====> 动态数组的元素,两者一一对应
        SimpleAdapter saImageItems = new SimpleAdapter(this,
                lstImageItem,//数据来源
                R.layout.activity_test2,//activity_test2的XML实现

                //动态数组与ImageItem对应的子项
                new String[] {"ItemImage","ItemText"},

                //ImageItem的XML文件里面的一个ImageView,两个TextView ID
                new int[] {R.id.app_Image,R.id.app_Text});
        //添加并且显示
        gv_1.setAdapter(saImageItems);
        //添加消息处理
        gv_1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            }
        });
    }

    //当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件
    class  ItemClickListener implements AdapterView.OnItemClickListener {
        public void onItemClick(AdapterView<?> arg0,//The AdapterView where the click happened
                                View arg1,//The view within the AdapterView that was clicked
                                int arg2,//The position of the view in the adapter
                                long arg3//The row id of the item that was clicked
        ) {
            //在本例中arg2=arg3
            HashMap<String, Object> item = (HashMap<String, Object>) arg0.getItemAtPosition(arg2);
            //显示所选Item的ItemText
            setTitle((String) item.get("ItemText"));
        }

    }
}

显示效果如下:

刚开始做的时候,一直不能显示下面APP的名字,后来想了想,也没想出来,估计是太笨了,然后就参考了网上的方法,最终有了结果,效果还是不错的。

时间: 2024-12-26 21:27:47

Android课程---如何用网格视图做出手机桌面APP的相关文章

Android课程---关于GridView网格视图的学习

activity_ui6.xml <?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"

【Android】10.3 网格视图(GridView)

分类:C#.Android.VS2015: 创建日期:2016-02-19 一.简介 网格视图(GridView)是在GridLayout的基础上添加了滚动功能的视图,即:GridView用于在可滚动的2D网格空间中显示包含大量单元格的项(每项都是一个视图),例如每个单元格显示一个图片,当图片较多时,还可以上下滚动查看. 要使用GridView,需要先编写一个视图适配器(一般用继承自BaseAdapter<T>的适配器类来实现),再利用它来依次填充每个单元格,例如,将图片按先行后列(或者先列后

Android课程---优化ListView列表视图(2)

layout_simple.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content

Android课程---优化ListView列表视图

activity_ui4.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"

Android课程---关于ListView列表视图的学习

activity_ui3.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"

Android基础入门教程——2.4.9 GridView(网格视图)的基本使用

Android基础入门教程--2.4.9 GridView(网格视图)的基本使用 标签(空格分隔): Android基础入门教程 本节引言: 本节给大家介绍的是第二个Adapter类的控件--GridView(网格视图),见名知义,ListView是列表, GridView就是显示网格!他和ListView一样是AbsListView的子类!很多东西和ListView都是相通的, 本节我们就来学习他的基本用法~ 1.相关属性: 下面是GridView中的一些属性: android:columnW

Android学习笔记27:网格视图GridView的使用

网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现. 本文将以一个具体的实例来说明如何使用GridView控件实现手机屏幕上各个应用软件图标的摆放,以及应用软件名称的显示. 完成后的程序运行效果如图1所示. 图1 主界面显示效果 1.界面布局 通过查看GridView的API帮助文档(http://developer.android.com/reference/android/widget/Gri

Android 网格视图GridView的使用

网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现. 本文将以一个具体的实例来说明如何使用GridView控件实现手机屏幕上各个应用软件图标的摆放,以及应用软件名称的显示. 完成后的程序运行效果如图1所示. 图1 主界面显示效果 1.界面布局 通过查看GridView的API帮助文档(http://developer.android.com/reference/android/widget/Gri

网格视图在Android应用程序中的使用

网格视图是在应用程序中比较常见的视图. 首先介绍一下GridView类,GridView类位于android.widget包下,该视图是将其他空间以二维格式显示到表格中的,而这些控件全部来自于ListAdapter适配器. GridView类的属性同样有两种配置方式,即XML属性配置和Java代码中配置.如表中列出了常见的属性和方法. 其次,介绍一下网格视图的使用,下面将通过一个完整的案列详细介绍网格视图的使用方法,在该案例中同样列出了各个动漫名人,包括其照片及描述,案例的开发步骤如下: 创建一