Android开发:控件GridView的使用
2017-10-20 10:07
447 查看
如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView。
<?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" > </GridView>GirdView的一些属性:android:numColumns="auto_fit" --------列数设置为自动android:columnWidth="90dp",----------每列的宽度,也就是Item的宽度android:stretchMode="columnWidth"------缩放与列宽大小同步android:verticalSpacing="10dp"----------垂直边距android:horizontalSpacing="10dp"-------水平边距1、准备数据源2、新建适配器3、加载适配器GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的,下面来个实例,监听事件用OnItemClickListener
举个例子:有X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item。 如果你点了b这个item。如下: public void onItemClick (AdapterView<?> parent, View view, int position, long id ) 1. parent 相当于listview Y适配器的一个指针,可以通过它来获得Y里装着的一切东西,再通俗点就是说告诉你,你点的是Y,不是X ; 2. view 是你点b item的view的句柄,就是你可以用这个view,来获得b里的控件的id后操作控件; 3. position 是b在Y适配器里的位置(生成listview时,适配器一个一个的做item,然后把他们按顺序排好队,在放到listview里,意思就是这个b是第position号做好的); 4.id 是b在listview Y里的第几行的位置(很明显是第2行),大部分时候position和id的值是一样的,如果需要的话,你可以自己加个log把<?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="match_parent"android:gravity="center"android:orientation="vertical"android:weightSum="1"><ImageViewandroid:id="@+id/ImageView1"android:layout_width="60dp"android:layout_height="60dp"android:src="@drawable/biao" /><TextViewandroid:layout_marginTop="5dp"android:id="@+id/TextViewG"android:layout_width="60dp"android:layout_height="wrap_content"android:text="电影"android:layout_weight="0.03"android:gravity="center"/></LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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="com.example.my.wuziqigame.Main4Activity" > <!-- GridView重要属性 android:numColumns="3" //一行显示多少个Item android:verticalSpacing="10dp" //行间距 android:horizontalSpacing="10dp" //列间距 --> <GridView android:layout_width="0dp" android:layout_height="0dp" android:id="@+id/GridView1" android:background="@drawable/bg_b" android:numColumns="3" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" tools:layout_constraintTop_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintBottom_creator="1" android:layout_marginStart="0dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginEnd="0dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginTop="0dp" tools:layout_constraintLeft_creator="1" android:layout_marginBottom="0dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintVertical_bias="1.0" /> </android.support.constraint.ConstraintLayout>package com.example.my.wuziqigame;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.GridView;import android.widget.SimpleAdapter;import android.widget.Toast;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Main4Activity extends AppCompatActivity implements AdapterView.OnItemClickListener {private GridView Gview;private SimpleAdapter simple1;private List<Map<String,Object>>detalist;private int[]icon={R.drawable.calendar,R.drawable.camera,R.drawable.games_control,R.drawable.messenger,R.drawable.clock,R.drawable.settings,R.drawable.weather};private String[]iconname={"日历","相机","游戏控制中心","消息","时间","设置","天气"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main4);Gview= (GridView) findViewById(R.id.GridView1);detalist=new ArrayList<>();simple1=new SimpleAdapter(this,Getdatelist(),R.layout.greadleview_activity,new String[]{"src","Text"},new int[]{R.id.ImageView1,R.id.TextViewG});Gview.setAdapter(simple1);Gview.setOnItemClickListener(this);}private List<Map<String,Object>> Getdatelist() {for(int i=0;i<6;i++){Map<String,Object>one=new HashMap<String,Object>();one.put("src",icon[i]);one.put("Text",iconname[i]);detalist.add(one);}return detalist;}@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Toast.makeText(this, "我是"+iconname[position], Toast.LENGTH_SHORT).show();}}
相关文章推荐
- Android TV开发经验总结---控件Gridview使用
- Android TV开发经验总结---控件Gridview使用
- 【Android 开发】:UI控件之 GridView 网格控件的使用
- Android初级开发(四)——补充9、GridView(表格)控件的使用
- Android开发-UI控件:PullToRefresh(ListView GridView下拉刷新)的简单使用
- android开发中spinner控件的使用
- Android开发--RadioButton和CheckBox控件的使用
- android应用开发笔记---常用控件使用方法
- Android开发01——控件的使用,四则运算
- Android开发--Spinner控件的使用
- Android开发:EditText和ListView或GridView同时使用,输入法自动跳出来的 解决办法
- Android控件开发之GridView
- Android开发--RadioButton和CheckBox控件的使用
- 【Android开发学习44】android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- Android开发:日期控件的使用(一)
- android开发中DatePicker控件的使用-------->时间的设置
- Android 开发:第二日——第一次使用控件
- Android GridView控件 使用
- Android开发中单选框控件RadioButton的使用
- Android开发GridView的使用