GridView 控件
(一)概述
GridView 控件称为网格列表,在 android 中的使用频率较高,该控件可按多行多列显示信息,表现能力很强。
(二)常用属性

属性名 Java的方法 作用

columnWidth       setColumnWidth(int)    设置列宽度gravity           setGravity(int)    设置对齐方式horizontalSpacing            setHorizontalSpacing(int)                    设置各元素之间的水平间距numColumns       setNumColumns(int)    设置列数stretchMode       setStrechMode(int)    设置拉伸模式verticalSpacing       setVerticalSpacing(int) 设置各元素间的垂直间距



其中,

stretchMode 有以下可选的属性值NO_STRETCH        不拉伸STRETCH_SPACING        仅拉伸元素之间的间距STRETCH_SPACING_UNIFORM 表格元素本身、元素之间的间距一起拉伸STRETCH_COLUMN_WIDTH    仅拉伸表格元素本身




Gallery 控件
(一)概述
Gallery(画廊)控件与 Spinner 类相似,都是 AbsSpinner 类的子类。它们之间的区别在于:Spinner 显示的是一个垂直列表选择框,而 Gallery 显示的是一个水平列表选择框,并且 Gallery 允许用户水平拖动列表框。
ListView 是垂直列表,Gallery 可以理解为是水平列表。

(二)常用属性

XML属性                  相关方法                            说明Gravity                   setGravity(int)                   设置对齐方式spacing                  setSpacting(int)                 设置列表项之间的间距unselectedAlpha      setUnselectedAlpha(float)     设置未选中的列表项的透明度




(三)重要接口、方法
1、OnItemClickListener 接口:监听列表项单击事件。该接口定义了如下方法:
1)void onItemClick(AdapterView<?> parent,View view,int position,long id)
作用:响应用户单击列表项的事件。
参数说明:
第一个参数-parent:当前的 Gallery 对象
第二个参数-view:被单击的列表项
第三个参数-position:被单击的列表项在适配器中的位置(索引值)
第四个参数-id:被单击的列表项在列表中所在列的索引值。

2)void setOnItemClickListener(OnItemClickListener listener)
作用:设置响应用户单击事件的方法
参数说明:
Listener:实现了 OnItemClickListener 接口的对象。


实例:

package com.jxust.day_05_01_listviewdemo;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemLongClickListener;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.GridView;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {Gallery mGallery;List<GeneralBean> mGenerals; // 代表十个军事家的集合GeneralAdapter mAdapter;int[] resid = { R.drawable.baiqi, R.drawable.caocao, R.drawable.chengjisihan,R.drawable.hanxin, R.drawable.lishimin, R.drawable.nuerhachi, R.drawable.sunbin,R.drawable.sunwu, R.drawable.yuefei, R.drawable.zhuyuanzhang };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData(); // 初始化数据initView();setListener();//设置监听器}private void setListener() {setOnItemClickListener();setOnItemLongClickListener();}// 长按操作private void setOnItemLongClickListener() {mGallery.setOnItemLongClickListener(new OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view, int position,long id) {Toast.makeText(MainActivity.this, mGenerals.get(position).getName()+"被长按", 2000).show();//false的作用就是告诉系统自己没有处理,交给其他监听器,从而就到了短按操作的那个监听器//true的作用就是告诉系统自己已经处理了return true;}});}// 短按操作private void setOnItemClickListener() {mGallery.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Toast.makeText(MainActivity.this, mGenerals.get(position).getName()+"被短按", 2000).show();}});}private void initView() {mGallery = (Gallery) findViewById(R.id.galleryGeneral);mAdapter = new GeneralAdapter(); // 创建适配器// 和ListView 关联起来mGallery.setAdapter(mAdapter);}private void initData() {// 将资源中的字符串数组转换为Java数组String[] names = getResources().getStringArray(R.array.generals);mGenerals = new ArrayList<GeneralBean>();for (int i = 0; i < names.length; i++) {GeneralBean bean = new GeneralBean(resid[i], names[i]);mGenerals.add(bean);}}// 定义代表军事家的适配器类class GeneralAdapter extends BaseAdapter {@Overridepublic int getCount() {//return mGenerals.size();return Integer.MAX_VALUE;}@Overridepublic Object getItem(int position) {return mGenerals.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// 拿到 ListView 的布局并且转换为 View 类型的对象View layout = View.inflate(MainActivity.this, R.layout.item_generals, null); // root表示的是父容器// 找到显示军事家头像的 ImageView// layout的作用就是将目标转换为 layout.item_generalsImageView ivThumb = (ImageView) layout.findViewById(R.id.ivThumb);// 找到显示军事家名字的 TextViewTextView tvName = (TextView) layout.findViewById(R.id.tvName);// 获取军事家中下标是 position 的军事家对象GeneralBean bean = (GeneralBean) getItem(position%mGenerals.size());// 显示军事家头像ivThumb.setImageResource(bean.getResid());// 显示军事家的姓名tvName.setText(bean.getName());return layout;}}}

<?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:orientation="vertical" >    <ImageView        android:id="@+id/ivThumb"        android:layout_width="80dp"        android:layout_height="80dp"        android:scaleType="fitXY"        android:src="@drawable/baiqi" />    <TextView        android:id="@+id/tvName"        android:layout_width="80dp"        android:layout_height="wrap_content"        android:gravity="center_horizontal"        android:text="白起"        android:textSize="20sp" /></LinearLayout>

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">Day_05_01_ListViewDemo</string>    <string name="hello_world">Hello world!</string>    <string name="action_settings">Settings</string><string-array name="generals">    <item >白起</item>    <item >曹操</item>    <item >成吉思汗</item>    <item >韩信</item>    <item >李世民</item>    <item >努尔哈赤</item>    <item >孙膑</item>    <item >孙武</item>    <item >岳飞</item>    <item >朱元璋</item></string-array>    </resources>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <Gallery        android:id="@+id/galleryGeneral"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:spacing="2dp" /></RelativeLayout>

更多相关文章

  1. Android(安卓)AP模式创建有/无密码热点
  2. android4.0.3,设置开机不自动进入锁屏状态
  3. Android自带语音播报+讯飞语音播报封装(直接用)
  4. Android(安卓)处理OnItemClickListener时关于焦点颜色的设置问题
  5. 举例说明如何在android中实现设置黑名单的功能--AudioManager、P
  6. Android琐碎(壹)
  7. Android设置中清除应用数据源码分析
  8. Android(安卓): CardView的优雅使用
  9. android TextView如何设置字体下划线

随机推荐

  1. 关于FragmentLayout布局的位置问题
  2. ApiDemos学习笔记App-Activity篇(2)——Cus
  3. Android 中级教程(一)之------Android Me
  4. 在Android中,px,dp,dip,sp的不同之处
  5. Android(安卓)GPS使用
  6. Android多分辨率适配框架(3)— 使用指南
  7. android 系统开发之开机动画
  8. android ndk log
  9. Android的selector,背景选择器
  10. Android多分辨率适配框架(2)— 原理剖析