您的位置:首页 > 移动开发 > Android开发

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();}}
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: