万书网 > 文学作品 > Android从入门到精通 > 第47页

第47页





.setLayoutParams(new  Gallery.LayoutParams(180,  135));



TypedArray  typedArray  =  obtainStyledAttributes(R.styleable.Gallery);



imageview.setBackgroundResource(typedArray.getResourceId(



R.styleable.Gallery_android_galleryItemBackground,



0));



imageview.setPadding(5,  0,  5,  0);  //设置ImageView的内边距



}  else  {



imageview  =  (ImageView)  convertView;



}



imageview.setImageResource(imageId[position]);  //为ImageView设置要显示的图片



return  imageview;  //返回ImageView



}



/*



*  功能:获得当前选项的id



*/



@Override



public  long  getItemId(int  position)  {



return  position;



}



/*



*  功能:获得当前选项



*/



@Override



public  Object  getItem(int  position)  {



return  position;



}



/*



*  获得数量



*/



@Override



public  int  getCount()  {



return  imageId.length;



}



};

(6)将步骤(5)中创建的适配器与Gallery关联,并且选中中间的图片,为了将用户选择的图片显示到图像切换器中,还需要为Gallery添加OnItemSelectedListener事件监听器,在重写的onItemSelected()方法中,将选中的图片显示到图像切换器中,具体代码如下:

gallery.setAdapter(adapter);  //将适配器与Gallery关联



gallery.setSelection(imageId.length  /  2);  //选中中间的图片



gallery.setOnItemSelectedListener(new  OnItemSelectedListener()  {



@Override



public  void  onItemSelected(AdapterView  parent,  View  view,int  position,  long  id)  {



imageSwitcher.setImageResource(imageId[position]);  //显示选中的图片



}



@Override



public  void  onNothingSelected(AdapterView  arg0)  {}



});

运行本实例,将显示如图4.13示的运行结果,单击某张图片,可以选中该图片,并且让其居中显示,也可以用手指拖动图片来移动图片,并且让选中的图片在上方显示。



图4.13 幻灯片式图片浏览器





4.2 消息提示框与对话框

教学录像:光盘\TM\lx\4\消息提示框与对话框.exe

在Android项目开发中,经常需要将一些临时信息显示给用户,虽然使用前面介绍的基本组件可以达到显示信息的目的,但是这样做不仅会增加代码量,而且对于用户来说也不够友好。为此,Android提供了消息提示框与对话框来显示这些信息。下面将分别介绍消息提示框与对话框的基本应用。

4.2.1 使用Toast显示消息提示框

在前面的实例中,已经应用过Toast类来显示一个简单的消息提示框了。本节将对Toast进行详细介绍。Toast类用于在屏幕中显示一个消息提示框,该消息提示框没有任何控制按钮,并且不会获得焦点,经过一定时间后自动消失。通常用于显示一些快速提示信息,应用范围非常广泛。

使用Toast来显示消息提示框比较简单,只需要经过以下3个步骤即可实现。

(1)创建一个Toast对象。通常有两种方法:一种是使用构造方式进行创建;另一种是调用Toast类的makeText()方法创建。

使用构造方法创建一个名称为toast的Toast对象的基本代码如下:

Toast  toast=new  Toast(this);

调用Toast类的makeText()方法创建一个名称为toast的Toast对象的基本代码如下:

Toast  toast=Toast.makeText(this,  "要显示的内容",  Toast.LENGTH_SHORT);

(2)调用Toast类提供的方法来设置该消息提示框的对齐方式、页边距、显示的内容等。常用的方法如表4.7所示。

表4.7 Toast类的常用方法





方 法  描 述

setDuration(int  duration)  用于设置消息提示框持续的时间,参数值通常使用Toast.LENGTH_LONG或Toast.LENGTH_SHORT

setGravity(int  gravity,  int  xOffset,  int  yOffset)  用于设置消息提示框的位置,参数gravity用于指定对齐方式;xOffset和yOffset用于指定具体的偏移值

setMargin(float  horizontalMargin,  float  verticalMargin)  用于设置消息提示的页边距

setText(CharSequence  s)  用于设置要显示的文本内容

setView(View  view)  用于设置将要在消息提示框中显示的视图

(3)调用Toast类的show()方法显示消息提示框。需要注意的是,一定要调用该方法,否则设置的消息提示框将不显示。

下面通过一个具体的实例说明如何使用Toast类显示消息提示框。

例4.11   在Eclipse中创建Android项目,名称为4.11,通过两种方法显示消息提示框。(实例位置:光盘\TM\sl\4\4.11)

(1)修改新建项目的res\layout目录下的布局文件main.xml,为默认添加的垂直线性布局管理器设置一个android:id属性,关键代码如下:

android:id="@+id/ll"

(2)在主活动MainActivity.java的onCreate()方法中,通过makeText()方法显示一个消息提示框,关键代码如下:

Toast.makeText(this,  "我是通过makeText()方法创建的消息提示框",  Toast.LENGTH_LONG).show();

注意:  在最后一定不要忘记调用show()方法,否则该消息提示框将不显示。

(3)通过Toast类的构造方法创建一个消息提示框,并设置其持续时间、对齐方式以及要显示的内容等,这里设置其显示内容为带图标的消息,具体代码如下: