手持终端
Eclipse平台下Android开发环境的搭建
PhoneGap配置到Eclipse开发环境
使用PhoneGap开发Android应用程序
PhoneGap3.0以上版本配置到Eclipse开发环境
使用PhoneGap3.0版本开发Android应用程序
PhoneGap3.0的第三方Android插件
Cordova配置到Android Studio开发环境
Android系统基本架构
Android的字符串颜色图片样式
Android的常用控件及菜单
Android的消息提示及传递
Android系统的组件通信
Android系统的Service
Android的广播消息接收
Android的数据存储与访问
Android系统的网络应用
Android图形图像处理
Android的Fragment框架
Android系统的并发编程
Java源文件结构与保留字
Java语言的数据类型与变量
Java的运算符与流程控制
Java语言的数组及操作
Java面向对象编程
Java的常用类
Android开发常用工具及命令
Android应用程序权限管理
Android系统提供的R类内置资源
Android系统的控件类及其方法
Android系统的菜单类及其方法
Android系统的对话框
Android应用程序模型及组件
Android的绘图类及方法
Android系统的动画效果
Android的数据库操作
Android的多媒体功能
Android系统照相机的使用
Android的文本朗读TTS
获取Android系统信息
Android系统的电话操作
Android系统的定位
Android系统的传感器
Android系统提供了丰富华丽的控件,使设计者可以轻松实现各具特色的控件及界面效果,增强用户体验。
1.TextView类:文本框
TextView是一个典型的文本显示控件,该控件只提供了显示功能,不允许用户对文本进行编辑。在程序中,提供TextView来显示文本信息。
1)setText方法:设置文本
该方法用于设置一个TextView文本框的显示内容,可以直接赋值一个字符串,也可以通过资源Id的方式来引用,是设置文本框显示文本的最常用方法。语法格式有两种:
public final void setText(int resid)
public final void setText(CharSquence text)
其中,参数resid为文本字符串的资源id,参数text为需要设置显示的字符串。
2)append方法:追加文字
该方法用于在TextView文本框原有内容的后面再添加显示文本,常用于更改文本框显示内容的场合。基本语法有两种形式:
public final void append(CharSequence text)
public void append(CharSquence text,int start,int end)
其中,参数CharSequence为需要追加的文本内容,参数start为追加文本的起始位置,参数end为追加文本的结束位置,即text字符串的截取位置,第一个字符位置为0。示例:
TextView myTextView=null;
myTextView=(TextView)findviewById(R.id.myTextView);
myTextView.append("123456");
myTextView.append("abcdefg",2,5);
3)setTextSize方法:设置字体大小
该方法用于设置一个TextView文本框显示内容的字体,可以通过指定单位和字体数值大小,也可以直接指定sp单位的字体大小,是设置文本框显示字体大小的最常用方法。语法格式有两种:
public void setTextSize(int uint,float size)
public void setTextSize(float size)
其中,参数size为字体大小,浮点数;参数uint为字体大小的单位,Android系统中可以取值包括:
·COMPLEX_UNIT_DIP:设备独立像素,与设备有关,支持多种分辨率时使用
·COMPLEX_UNIT_IN:英寸
·COMPLEX_UNIT_MM:毫米
·COMPLEX_UNIT_PT:一个标准长度单位,1pt=1/72in,印刷业常用
·COMPLEX_UNIT_PX:像素单位,不同设备显示成果相同
·COMPLEX_UNIT_SP:比例像素单位,主要 用于文本字体的显示
示例:
myTextView.setTextSize(30);
4)setTextColor方法:设置字体颜色
该方法用于设置一个TextView文本框显示内容的字体颜色,可以通过XML文件的颜色状态列表来设置,或者直接指定颜色值,是设置文本框显示文本颜色的常用方法。语法格式有两种:
public void setTextColor(ColorStateList colors)
public void setTextColor(int color)
其中,参数colors为颜色状态列表,需要在XML文件中定义;color为颜色数值。示例:
myTextView.setTextColor(Color.RED);
5)setTypeface方法:设置字体样式:
该方法用于设置一个TextView文本框显示内容的样式,可以指定系统自带的字体,也可以使用自定义的字体,是设置文本框显示文本字体的最常用方法。语法格式有两种:
public void setTypeface(Typeface tf,int style)
public void setTypeface(Typeface tf)
其中,tf为字体类型,0表示普通,1表示sans字体,2表示serif字体,3表示monospace字体;style表示字体的样式,0表示普通,1表示粗体,2表示斜体。示例:
myTextView.setTypeface(Typeface.SANS_SERIF,Typeface.BOLD);
也可以使用外部自定义的字体文件,这个文件需要在资源文件中预定义:
setTypeface(Typeface.createFromAsset(getAssets(),"fonts/vrinda.ttf");
6)setBackgroundColor方法:设置背景颜色
该方法用于设置一个TextView文本框的背景颜色,一般通过直接设置颜色值来表示,是设置文本框背景色的最常用方法。语法格式:
puclic void setBackgroundColor(int color)
其中,参数color表示颜色数值。示例:
myTextView.setBackgroundColor(Color.WHITE);
7)setHeight方法:设置文本框高度
该方法用于设置一个TextView文本框的高度,单位是pt,一般用于设置和更改文本框大小的场合。语法格式:
public void setHeight(int pixels)
其中,参数pixels表示文本框的高度,单位pt。
8)getCurrentTextColor方法:获取当前字体颜色
该方法用户获取一个TextView文本框当前字体的颜色,其返回值是颜色的数值代码。语法格式为:
public final int getCurrentTextColor()
该方法返回值为整型,代表了颜色数值,采用RGB方式定义。常用的颜色数值为:
·Color.BLACK:对应颜色值为0xff000000(-16777216)
·Color.BLUE:对应颜色值为0xff0000ff(-16776961)
·Color.CYAN:对应颜色值为0xff00ffff(-16711681)
·Color.DKGRAY:对应颜色值为0xff444444(-12303292)
·Color.GRAY:对应颜色值为0xff888888(-7829386)
·Color.GREEN:对应颜色值为0xff00ff00(-16711936)
·Color.LTGRAY:对应颜色值为0xffcccccc(-3355444)
·Color.MAGENTA:对应颜色值为0xffff00ff(-65281)
·Color.RED:对应颜色值为0xffff0000(-65536)
·Color.TRANSPARENT:对应颜色值为0x00000000(0)
·Color.WHITE:对应颜色值为0xffffffff(-1)
·Color.YELLOW:对应颜色值为0xffffff00(-256)
9)getText方法:获取文本框内容
该方法用于获取一个TextView文本框显示的文本内容。语法格式:
public CharSequence getText()
10)getHeight方法:获取文本高度
该方法用于获取一个TextView文本框的高度,单位是pt,该方法只有在对象绘制之后才能使用,否则返回0。语法格式:
public final int getHeight()
11)getWidth方法:获取文本框宽度
该方法用于获取一个TextView文本框的宽度,单位pt,该方法只有在对象绘制之后才能使用,否则返回0。语法格式:
public final int getWidth()
12)setPadding方法:设置内边距
该方法用于设置一个TextView文本框的内边距,单位pt,显示效果相对于文字内容和文本框边缘之间留有空白。语法格式:
public void setPadding(int left,int top,int right,int bottom)
其中,left为文本框左侧内边距,top为文本框上部内边距,right为文本框右侧内边距,bottom为文本框下部内边距。
13)getPaddingLeft方法:获取文本框左侧内边距
该方法用于获取一个TextView文本框左侧内边距,返回的单位为pt。语法格式为:
public int getPaddingLeft()
14)getPaddingTop方法:获取文本框上部内边距
该方法用于获取一个TextView文本框上部内边距,返回的单位为pt。语法格式为:
public int getPaddingTop()
15)getPaddingRight方法:获取文本框右侧内边距
该方法用于获取一个TextView文本框右侧内边距,返回的单位为pt。语法格式为:
public int getPaddingRight()
16)getPaddingBottom方法:获取文本框下部内边距
该方法用于获取一个TextView文本框下部内边距,返回的单位为pt。语法格式为:
public int getPaddingBottom()
17)addTextChangedListener方法:添加文本更改监听器
该方法用于在TextView文本框添加一个文本更改监听器,主要用于监视文本框内容的改变,然后在相应的事件处理函数中执行相应的代码,典型应用是实现文本框与编辑框的文本内容同步。基本语法:
addTextChangedListener(TextWatcher watcher)
其中,参数watcher为设置的文本内容监听器。示例:
TextView myTextView=null;
TextWatcher watcher=null;
myTextView=(TextView)findviewById(R.id.myTextView);
myTextView.setText("123456");
myTextView.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable a){}
@Override
public void beforeTextChanged(CharSquence s,int start,int count,int after){}
@Override
public void onTextChanged(CharSquence s,int start,int before,int count){
Toast.makeText(getApplicationContext(),"原字符串共"+String.valueOf(before)
+"个字符;"+"从第"+String.valueOf(start)+"个字符开始更改为字符串:"
+s+";共"+String.valueOf(count)+"字符。",Toast.LENGTH_LONG).show();
}
});
myTextView.setText("12345678");
2.Button类:按钮
Button是最主要的用户与程序交互控件,允许用户定制不同的样式,也允许用户添加相应的动作处理函数。Button类中的很多方法都继承于TextView类,用法完全一致,但还有一些常用的独特的方法。
1)setOnClickListener方法:设置按钮监听器
该方法用于为按钮绑定一个监听器,用于处理当按钮按下时的动作,主要用于应用程序执行用户动作的场合,经常会使用。在使用时,用户需要重载其内部的OnClick方法,并在其中执行相应的动作。语法格式:
public void setOnClickListener(View.OnClickListener l)
示例:
final Window bg=getWindow();
OnClickListener listaner=null;
Button bt1=null;
final TextView myTextView=(TextView)findViewById(R.id.myTextView);
bt1=(Button)findViewById(R.id.button1);
bt1.setOnClickListener(listener=new OnClickListener(){
@Override
public void onClick(View v){
Resources res=getResources();
Drawable drawable=res.getDrawable(R.drawable.white);
bg.setBackgroundDrawable(drawable);
myTextView.setTextColor(Color.RED);
myTextView.setText("背景已经设置为白色!");
}
});
2)setOnLongClickListener方法:设置按钮长按监听器
该方法用于为按钮绑定一个监听器,用于处理当按钮长时间按下的动作。在使用时,用户需要重载其内部的OnLongClick方法,并在其中执行相应的动作。语法格式:
public void setOnLongClickListener(View.OnLongClickListener l)
3)setOnFocusChangeListener方法:设置焦点改变监听器
该方法用于为按钮绑定一个监听器,用于处理当按钮获得或者失去焦点时的动作。在使用时,用户需要重载其内部的OnFocusChange方法,并在其中执行相应的动作。语法格式:
public void setOnFocusChangeListener(View.OnFocusChangeListener l)
4)setOnTouchListener方法:设置触摸监听器
该方法用于为按钮绑定一个监听器,用于处理当按钮被触摸时的动作。在使用时,用户需要重载其内部的OnTouch方法,并在其中执行相应的动作。所谓触摸动作,可以是触摸按下、触摸抬起或者触摸移动。语法格式:
public void setOnTouchListener(View.OnTouchListener l)
示例:
final Button bt1=(Button)findViewById(R.id.button1);
final TextView myTextView=(TextView)findViewById(R.id.myTextView);
bt1.setOnTouchListener(new View.OnTouchListener(){
int px;
int py;
@Override
public boolean onTouch(View v,MotionEvent event){
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
px=(int)event.getX();
py=(int)event.getY();
myTextView.setText("px="+px+";py="+py);
break;
case MotionEvent.ACTION_MOVE:
//ViewGroup.LayoutParams lp=new AbsoluteLayout.LayoutParams(-2,-2,
(int)event.getRawX()-px-4,(int)event.getRawY()-py-52);
//bt1.setLayoutParams(lp);
px=(int)event.getX();
py=(int)event.getY();
myTextView.setText("当前触摸点坐标为:px="+px+",py="+py);
}
return false;
}
});
5)setPressed方法:设置按下状态
该方法用于设置按钮的状态为被按下,语法格式:
public void setPressed(boolean pressed)
其中,参数pressed表示了按钮的状态,true表示按钮被按下,false表示按未被按下。示例:
bt1.setPressed(true);
6)setClickable方法:设置按钮是否可按
该方法用于设置按钮是否可以被用户按下。如果setClickable方法之后设置了按钮监听器,那么将重新使按钮处于可按状态。语法格式:
public void setClickable(boolean clickable)
其中,参数clickable代表了按钮的状态,true表示按钮可按,false表示按钮不可按。示例:
bt1.setClickable(false);
7)setLongClickable方法:设置是否可长按
该方法用于设置按钮是否可以执行长按操作。如果setLongClickable方法之后设置了按钮监听器,那么将重新使按钮处于可长按状态。语法格式:
public void setLongClickable(boolean longClickable)
其中,参数longClickable代表了按钮的状态,true表示按钮可长按,false表示按钮不可长按。
3.EditText类:编辑框
EditText是一个典型的文本编辑控件,不仅提供信息显示功能,还允许用户输入、编辑或者选择文本,是Android中使用最广泛的信息输入接口。EditText类的很多方法都继承于TextView类,用法完全一致,但也有一些独特的方法。
1)setText方法:设置文本内容
该方法用于设置一个EditText编辑框的显示内容,可以直接赋值一个字符串,也可以通过资源Id的方式来引用。语法格式有两种:
public final void setText(int resid)
public final void setText(CharSequence text)
其中,参数resid为文本字符串的资源Id,参数text为需要设置显示的字符串。示例:
2)getText方法:获取显示内容
该方法用于获取一个EditText边界框显示的文本内容。语法格式:
public Editable getText()
3)setSelection方法:设置文本选择
该方法用于设置一个EditText编辑框哪些内容被选择,被选择的内容将以高亮显示。语法格式:
public void setSelection(int start,int stop)
其中,参数start是文本选择的起始字符,stop是文本选择的终止字符。示例:
final EditText myEditText=(EditText)findViewById(R.id.editText1);
myEditText..setText("Hello EditText!");
myEditText.setSelection(0,5);
4)setHint方法:设置提示信息
该方法用于设置一个EditTest编辑框的提示信息,当编辑框中的内容为空的时候将显示该提示信息。语法格式:
public final void setHint(CharSuquence hint)
其中,参数hint为设置的提示信息。
myEditText.setHint("请输入字符串:");
5)setOnKeyListener方法:设置按键监听器
该方法用于为EditText编辑框设置按键监听器,可以监听手机上的按键。在程序中需要重载其中的onKey方法。不同的Android手机对于同一个按键的编码可能会不一样。语法格式:
public void setOnKeyListener(View.OnKeyListener l)
示例:
Button bt1=null;
TextView myTextView=null;
bt1=(Button)findViewById(R.id.button1);
myTextView=(TextView)findViewById(R.id.myTextView);
final EditText myEditText=(EditText)findViewById(R.id.editText1);
myEditText.setText("Hello EditText!");
myEditText.setHint("请输入字符串:");
myEditText.setOnKeyListener(new View.OnKeyListener(){
@Override
public void onKey(View v,int keyCode,KeyEvent event){
Toast.makeText(getApplicationContext(),"该按键的keyCode为:"+keyCode,
Toast.LENGTH_LONG).show();
return false;
}
});
4.DatePicker类:日期选择
DatePicker是Android系统中的日期显示和选择控件,不仅提供了日期显示功能,还允许用户更改或者选择日期。Android手机中的日期设置功能就是通过调用DatePicker类来实现的。DatePicker类中的很多方法都继承于TextView类,用法完全一致,但也有一些独特的方法。
1)init方法:初始化控件
该方法用于初始化一个DatePicker日期选择控件,通过该方法可以设置初始显示的年份、月份和日数,还可以设置相应的日期更改监听器。在使用一个DatePicker时,该方法必须首先调用。语法格式:
public void init(int year,int monthOfYear,int dayOfMonth,DatePicker.OnDateChangedListener onDateChangedListener)
其中,参数year为初始年份;参数monthOfYear为初始月份,实际显示的月份是此处设置的数值加1;参数dayOfMonth为初始日数;onDateChangedListener为日期更改监听器。
2)onDateChangedListener方法:日期更改监听器
该方法用于为DatePicker日期选择控件设置日期选择监听器。当用户在界面之上更改了日期之后,将触发该监听器,此时需要重载其中的onDateChanged方法。语法格式:
public void OnDateChangedListener(OnDateChangedListener l)
示例:
DatePicker myDatePicker=(DatePicker)findViewById(R.id.datePicker1);
OnDateChangedListener onDateChangedListener=new DatePicker.onDateChangedListener(){
@Override
public void onDateChanged(DatePicker view,int year,int monthPfYear,int dayOfMonth){
Toast.makeText(getApplicationContext(),"当前日期为:"+year+"年"+(monthOfYear+1)
+"月"+dayOfMonth+"日",Toast.LENGTH_LONG).show();
}
};
myDatePicker.init(2017,1,1,onDateChangedListener);
3)updateDate方法:更新日期
该方法用于更新一个DatePicker日期选控件,通过该方法可以设置显示的年份、月份和日数。调用该方法将触发日期更改监听器。语法格式:
public void updateDate(int year,int monthOfYear,int dayOfMonth)
其中,参数year为年份;参数monthOfYear为月份,实际显示的月份是此处设置的数值加1;参数dayOfMonth为日数。示例:
myDatePicker.updateDate(2017,5,1);
4)getYear方法:获取年份
该方法用于获取一个DatePicker日期选控件所显示的年份,onDateChangedListener方法则可以自动触发。语法格式:
public int getYear()
5)getMonth方法:获取月份
该方法用于获取一个DatePicker日期选控件所显示的月份,这里获取的月份是实际显示月份减1,onDateChangedListener方法则可以自动触发。语法格式:
public int getMonth()
6)getDayOfMonth方法:获取日数
该方法用于获取一个DatePicker日期选控件所显示的日数,onDateChangedListener方法则可以自动触发。语法格式:
public int getDayOfMonth()
示例:
Button bt1=(Button)findViewById(R.id.button1);
final DatePicker myDatePicker=(DatePicker)findViewById(R.id.datePicker1);
OnDateChangedListener onDateChangedListener=null;
myDatePicker.init(2017,1,1,onDateChangedListener);
bt1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
int year,month,day;
year=myDatePicker.getYear();
month=myDatePicker.getMonth()+1;
day=myDatePicker.getDayOfMonth();
Toast.makeText(getApplicationContext(),"当前日期为:"+year+"年"+month
+"月"+day+"日",Toast.LENGTH_LONG).show();
}
};
5.TimePicker类:时间选择
TimePicker是Android系统中时间显示好选择控件,不仅提供了时间显示功能,还允许用户更改或者选择时间。TimePicker用于选择一天中时间的视图,支持24小时及上午/下午模式。Android手机中的时间设置功能就是调用了TimePicker类来实现的。
TimePicker类中的很多方法都继承于TextView类,用法完全一致,但还有其他一些独特的方法。
1)setCurrentHour方法:设置当前小时
该方法用于设置一个TimePicker时间选择控件显示的小时,语法格式:
public void setCurrentHour(Integer currentHour)
其中,参数currentHour为显示的小时数。
2)setCurrentMinute方法:设置当前分钟
该方法用于设置一个TimePicker时间选择控件显示的分钟,语法格式:
public void setCurrentMinute(Integer currentMinute)
其中,参数currentMinute为显示的分钟数,取值范围0~59之间的整数。
3)setIs24HourView方法:设置是否24小时制
该方法用于设置一个TimePicker时间选择控件是否按照24小时制进行显示,默认情况下该控件采用上午/下午模式进行显示。语法格式:
public void setIs24HourView(Boolean is24HourView)
其中,参数is24HourView为布尔型数据,true表示采用24小时制,false表示不采用24小时制。
4)setOnTimeChangedListener方法:设置时间更改监听器
该方法用于为TimePicker时间选择控件设置时间更改监听器。当用户在界面之上更改了时间之后,将触发该监听器,此时需要重载其中的onTimeChanged方法。语法格式:
public void setOnTimeChangedListener(OnDateChangedListener l)
示例:
TimePicker myTimePicker=(TimePicker)findViewById(R.id.timePicker1);
myTimePicker.setCurrentHour(16);
myTimePicker.setCurrentMinute(12);
myTimePicker.setOnTimeChangedListener(new TimePicker.onTimeChangedListener(){
@Override
public void onTimeChanged(TimePicker view,int hourOfDay,int minute){
Toast.makeText(getApplicationContext(),"当前时间为:"+hourOfDay+"点"+minute
+"分",Toast.LENGTH_LONG).show();
}
});
5)getCurrentHour方法:获取当前小时
该方法用于获取一个TimePicker时间选择控件所显示的小时,而OnTimeChangedListener方法则可以自动触发。语法格式:
public Integer getCurrentHour()
6)getCurrentMinute方法:获取当前分钟
该方法用于获取一个TimePicker时间选择控件所显示的分钟,而OnTimeChangedListener方法则可以自动触发。语法格式:
public Integer getCurrentMinute()
7)is24HourView方法:获取是否为24小时制
该方法用于获取一个TimePicker时间选择控件是否为24小时制,而OnTimeChangedListener方法则可以自动触发。语法格式:
public Boolean is24HourView()
示例:
Button bt1=(Button)findViewById(R.id.button1);
final TimePicker myTimePicker=(TimePicker)findViewById(R.id.timePicker1);
myTimePicker.setCurrentHour(16);
myTimePicker.setCurrentMinute(12);
bt1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
int hour,minute;
boolean is24v;
hour=myTimePicker.getCurrentHour();
minute=myTimePicker.getCurrentMinute();
is24v=myTimePicker.is24HourView();
if(is24v){
Toast.makeText(getApplicationContext(),"当前时间为:"+hour+"点"
+minute+"分",Toast.LENGTH_LONG).show();
}else{
if(hour<12){
Toast.makeText(getApplicationContext(),"当前时间为:上午"
+hour+"点"+minute+"分",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(),"当前时间为:下午"
+(hour-12)+"点"+minute+"分",Toast.LENGTH_LONG).show();
}
}
}
});
6.ProgressBar类:进度条
进度条主要用于显示一些操作的进度,特别是在执行一些比较耗时的操作时,以动态的效果告知用户目前的进度。ProgressBar类中的很多方法都与TextView类似,用法完全一致,也有一些不同的方法。
1)setMax方法:设置最大值
该方法用于设置一个ProgressBar进度条的最大值,默认情况下最大值为100。语法格式:
public synchronized void setMax(int max)
其中,参数max为设置的进度条最大值,此时该进度条的范围为0~max。
2)setProgress方法:设置主要进度
该方法用于设置一个ProgressBar进度条的当前主要进度值,该值应小于setMax方法设置的最大值。该方法主要用于进度显示的场合,一般放置在一个线程中,跟随所进行的操作来更新显示进度。语法格式:
public synchronized void setProgress(int progress)
其中,参数progress为设置的当前进度值。
3)setSecondaryProgress方法:设置次要进度
该方法用于设置一个ProgressBar进度条的当前次要进度值,该值应小于setMax方法设置的最大值。该方法主要用于多重进度显示的场合,,一般放置在一个线程中,跟随所进行的操作来更新显示进度。
public synchronized void setSecondaryProgress(int secondaryProgress)
其中,参数secondaryProgress为设置的当前次要进度值。
4)getMax方法:获取最大值
该方法用于获取一个ProgressBar进度条的最大值,返回值为int整型。语法格式:
public synchronized int getMax()
5)getProgress方法:获取主要进度
该方法用户获取一个ProgressBar进度条的当前主要进度值,其返回值为int整型。语法格式:
public synchronized int getProgress()
6)getSecondaryProgress方法:获取次要进度
该方法用于获取一个ProgressBar进度条的当前次要进度值,返回值为int整型,主要用于多重进度的场合。语法格式:
public synchronized int getSecondaryProgress()
示例:
Button bt1=(Button)findViewById(R.id.button1);
final ProgressBar mbr=(ProgressBar)findViewById(R.id.progressBar1);
mbar.setMax(200);
mbar.setProgress(150);
mbar.setSecondaryProgress(180);
bt1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(getApplicationContext(),"进度条的最大值为"+mbar.getMax()
+",当前主要进度为"+mbar.getProgress()+",当前次要进度为"
+mbar.getSecondaryProgress(),Toast.LENGTH_LONG).show();
}
});
7.SeekBar类:滑块
SeekBar是Android系统中的滑块控件,主要用于接收用户输入,能简化输入操作,直观改变用户输入值。Android手机中,音量调节、屏幕亮度调节都使用SeekBar滑块。SeekBar类继承于ProgressBar类,很多方法完全一致,但有一个setOnSeekBarChangeListener方法。
该方法用于设置一个SeekBar类滑块监听器,在该监听器内可以监听滑块的移动,同时提供用户在SeekBar上开始和停止触摸手势时的通知。语法格式:
public void setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener l)
示例:
SeekBar mSeekBar=(SeekBar)findViewById(R.id.seekBar1);
final EditText mEditText=(EditText)findViewById(R.id.editText1);
mSeekBar.setMax(200);
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override
public void onStopTrackingTouch(SeekBar seekBar){
Toast.makeText(getApplicationContext(),"停止更改",
Toast.LENGTH_LONG) .show();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar){
Toast.makeText(getApplicationContext(),"开始更改",
Toast.LENGTH_LONG) .show();
}
@Override
public void onProgressChanged(SeekBar seekBar,int progress,boolean fromUser){
mEditText.setText("滑块的当前值为"+progress);
}
});
8.RatingBar类:星级滑块
RatingBar是Android系统中非常有特色的星级滑块,是SeekBar和ProgressBar的扩展,通常需要对某个东西进行等级判定的场合。RatingBar有两种风格,小风格ratingBarStyleSmall,大风格ratingBarStyleIndicator。当使用小风格时,用户可以触摸/拖动或使用键来设置等级评分;当使用大风格时,则只能用于显示等级,不能接受用户的输入。
1)setMax方法:设置最大值
该方法用于设置一个RatingBar星级滑块的最大值,评分等级的范围为0~max。语法格式:
public synchronized void setMax(int max)
其中,参数max为设置的星级滑块最大值。
2)setNumStars方法:设置星形数量
该方法用于设置一个RatingBar星级滑块的星形数量。为了能够正常显示,建议将当前控件的布局宽度设置为wrap content。语法格式:
public void setNumStars(int numStars)
其中,参数numStars为设置的星形显示数量。
3)setRating方法:设置分数
该方法用于设置一个RatingBar星级滑块的显示分数,也就是获得的星形数量。语法格式:
public void setRating(float rating)
其中,参数rating为设置的分数,浮点型数据。
4)setStepSize方法:设置步长
该方法用于设置一个RatingBar星级滑块的步长,也就是每次更改的最小长度。如果每次可以更改半个星星,需要设为0.5,。语法格式:
public void setStepSize(float stepSize)
其中,参数stepSize为设置的步长,浮点型数据。
5)getNumStars方法:获取星星数量
该方法用于获取一个RatingBar星级滑块的星星数量,返回值为int整型。语法格式:
public int getNumStars()
6)getRating方法:获取分数
该方法用于获取一个RatingBar星级滑块显示的评分,返回值为float浮点型。语法格式:
public float getRating()
7)getStepSize方法:获取步长
该方法用于获取一个RatingBar星级滑块的评分步长,返回值为float浮点型。语法格式:
public float getStepSize()
8)setOnRatingBarChangeListener方法:设置监听器
该方法用于设置一个RatingBar星级滑块的监听器。当用户更改了星级模块之后,将触发该监听器,这是获知星级变化的主要方法。语法格式:
public void setOnRatingBarChangeListener(RatingBar.OnRatingBarChangeListener listener)
示例:
RatingBar mRating=(RatingBar)findViewById(R.id.ratingBar1);
mRating.setNumStars(5);
mRating.setStepSize((float)0.5);
mRating.setRating((float)3.5);
mRating.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener(){
@Override
public void onRatingChanged(RatingBar ratingBar,float rating,boolean fromUser){
Toast.makeText(getApplicationContext(),"分数等级为"+mRating.getRating()+
",总星级为"+mRating.getNumStars(),Toast.LENGTH_LONG) .show();
}
});
9)setIsIndicator方法:设置指示器
该方法用于设置一个RatingBar星级滑块为指示器,此时用户只能查看评分信息,而无法对该控件进行修改。语法格式:
public void setIsIndicator(boolean isIndicator)
其中,参数isIndicator表示是否为一个指示器,true表示是一个指示器,false表示不是一个指示器。
10)isIndicator方法:判断是否为指示器
该方法用于判断一个RatingBar星级滑块是否为指示器,也就是判断是否可以接收用户的输入。语法格式:
public boolean isIndicator()
其中,如果返回值为true表示是一个指示器,false表示不是一个指示器。
9.ToggleButton类:状态开关按钮
ToggleButton是Android系统中的一个开关按钮,其通过一个带有亮度指示条的按钮来表示两种状态,可以是ON/OFF,也可以是选中/未选中状态。ToggleButton类继承于Button类,很多方法都类似,也有一些特有的方法。
1)setTextOff方法:设置未选中时的文本
该方法用于设置一个ToggleButton状态开关未选中时显示的文本,首次使用状态开关按钮时需要设置该内容。语法格式:
public void setTextOff(CharSequence textOff)
其中,参数textOff为字符串,也可以引用字符串资源。
2)setTextOn方法:设置选中时的文本
该方法用于设置一个ToggleButton状态开关按钮选中时显示的文本,在首次使用状态开关按钮时需要设置该内容。语法格式:
public void setTextOn(CharSequence textOn)
其中,参数textOn为字符串,也可以引用字符串资源。
3)setChecked方法:设置按钮状态
该方法用于设置一个ToggleButton状态开关按钮的状态,是选中还是不选中,这是程序改变ToggleButton状态开关按钮的主要方法。语法格式:
public void setChecked(boolean checked)
其中,参数checked为按钮状态,true表示选中,false表示未选中。示例:
ToggleButton myToggleButton=(ToggleButton)findViewById(R.id.toggleButton1);
myToggleButton.setTextOff("关闭");
myToggleButton.setTextOn("打开");
myToggleButton.setChecked(true);
4)setBackgroundDrawable方法:设置背景
该方法用于设置一个ToggleButton状态开关按钮的背景,可以指定相应的显示图片资源。语法格式:
public void setBackgroundDrawable(Drawable d)
其中,参数d为图片资源。示例:
myToggleButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.icon));
5)getTextOff方法:获取未选中时的文本
该方法用于获取一个ToggleButton状态开关在未选中时显示的文本,其返回值为字符串。语法格式:
public CharSequence getTextOff()
6)getTextOn方法:获取选中时的文本
该方法用于获取一个ToggleButton状态开关按钮在选中时显示的文本,其返回值为字符串。语法格式:
public CharSequence getTextOn()
7)setOnCheckedChangeListener方法:设置监听器
该方法用于设置一个ToggleButton状态开关按钮的监听器,当按钮的状态改变时将触发该监听器。该方法是获知ToggleButton状态改变的主要方法。语法格式:
public void setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener listener)
示例:
final ImageView imageView=(ImageView)findViewById(R.id.imageView1);
ToggleButton myToggleButton=(ToggleButton)findViewById(R.id.toggleButton1);
myToggleButton.setTextOff("关闭");
myToggleButton.setTextOn("打开");
myToggleButton.setChecked(true);
myToggleButton.setOnCheckedChangeListener
(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
if(isChecked){
imageView.setImageResource(R.drawable.bulb_on);
}else{
imageView.setImageResource(R.drawable.bulb_off);
}
}
});
10.Toast类:弹出信息框
Toast用于简短的提示信息,采用浮于应用程序之上的形式呈现给用户。Toast视图并不获得焦点,不影响用户输入。
1)cancel方法:关闭Toast视图
该方法用于关闭Toast视图。如果Toast视图已经显示则将其关闭,还没有显示则不再显示。一般情况下不需要调用该方法,正常情况下视图会在超过存续期间后消失。语法格式:
public void cancel()
2)getDuration方法:获取持续时间
该方法用于获取Toast视图显示的持续时间,通常在获取Toast视图的持续时间后根据需要进行修改。该方法的返回值为int类型,取值有LENGTH_LONG和LENGTH_SHORT(默认)两种值,分别表示较长和较短的持续时间。语法格式:
public int getDuration()
3)getGravity方法:获取Toast视图的显示位置
该方法用于获取Toast视图的提示信息在屏幕上的显示位置。该方法返回值为int类型,为Android内置的Gravity标准常量,有如下取值:
·BOTTOM:底部,常量值为80(0x00000050)
·CENTER:水平方向和垂直方法的中部,常量值17(0x00000017)
·CENTER_HORIZONTAL:水平方向的中部,常量值1(0x00000001)
·CENTER_VERTICAL:垂直方向的中部,常量值16(0x00000010)
·LEFT:左部,常量值3(0x00000003)
·RIGHT:右部,常量值5(0x00000005)
·TOP:顶部,常量值48(0x00000030)
返回值可以为多个Gravity常量的组合,如81表示Toast视图位于屏幕的底部及水平方向的中部。语法格式:
public int getGravity()
4)getHorizontalMargin方法:获取水平方向的页边空白
该方法用于获取Toast视图的提示信息在屏幕水平方向的页边空白。该方法的返回值为float类型,是容器的边缘与提示信息的横向空白(与容器宽度的比)。语法格式:
public float getHorizontalMargin()
5)getVerticalMargin方法:获取垂直方向的页边空白
该方法用于获取Toast视图的提示信息在屏幕垂直方向的页边空白。该方法的返回值为float类型,是容器的边缘与提示信息的纵向空白(与容器宽度的比)。语法格式:
public float getHorizontalMargin()
6)makeText方法:生成标准Toast对象
该方法用于生成一个包含文本视图的标准Toast对象,通过该方法可以设置Toast视图的文本提示内容及持续时间。语法格式:
public static Toast makeText(Context context,CharSequence text,int duration)
其中,context为使用的上下文,通常是应用程序或者Activity对象;参数text为要显示的文本,是已经格式化的文本,也可以通过字符串资源Id来引用;参数duration为持续时间,可以取值为Toast.LENGTH_SHORT或Toast.LENGTH_LONG。示例:
Toast.makeText(getApplicationContext(),"提示信息",Toast.LENGTH_SHORT).show();
7)setView方法:设置显示的View对象
该方法用于设置Toast视图中要显示的View对象。该方法可以灵活地用来显示自定义的Toast视图,其中可以包含图片、文字等。语法格式:
public void setView(View view)
其中,view为需要显示的View对象。示例:
Toast toast=new Toast(getApplicationContext());
ImageView view=new ImageView(getApplicationContext());
view.setImageResource(R.drawable.icon);
toast.setView(view);
toast.show();
8)getView方法:获取View对象
该方法用于获取一个Toast视图的View对象,通常用于一些用户自定义风格的Toast视图显示中。该方法的返回值为View类型的对象。语法格式:
public View getView()
示例:
Toast toast=Toast.makeText(getApplicationContext(),"图文显示",Toast.LENGTH_LONG);
LinearLayout mLayout=new LinearLayout(getApplicationContext());
mLayout.setOrientation(LinearLayout.HORIZONTAL);
ImageView mImage=new ImageView(getApplicationContext());
mImage.setImageResource(R.drawable.icon);
View toastView=toast.getView();
mLayout.addView(mImage);
mLayout.addView(toastView);
toast.setView(mLayout);
toast.show();
9)setGravity方法:设置显示位置
该方法用于设置提示信息在手机屏幕上的显示位置。语法格式:
public void setGravity(int gravity,int xOffset,int yOffset)
其中,参数gravity为Android内置的Gravity标准常量;参数xOffset表示Toast视图在x方向上的偏移,大于0右移,小于0左移;参数yOffset表示Toast在y方向上的偏移,大于0下移,小于0上移。示例:
toast.setGravity(Gravity.CENTER_VERTICAL,0,0);
10)getXOffset方法:获取水平方向偏移量
该方法用于获取Toast视图相对于参照位置的水平方向(x方向)偏移像素量,返回值为int整型。语法格式:
public int getXOffset()
11)getYOffset方法:获取垂直方向偏移量
该方法用于获取Toast视图相对于参照位置的垂直方向(y方向)偏移像素量,返回值为int整型。语法格式:
public int getYOffset()
12)setDuration方法:设置持续时间
该方法用于设置Toast视图显示的持续时间。语法格式:
public void setDuration(int duration)
其中,参数duration为Toast视图的持续时间,有LENGTH_LONG和LENGTH_SHORT两种取值。
13)setMargin方法:设置页边空白
该方法用于设置Toast视图提示信息的页边空白。语法格式:
public void setMargin(float horizontalMargin,float verticalMargin)
其中,参数horizontalMargin为水平方向的页边空白,是容器的边缘与提示信息的横向空白(与容器宽度的比);verticalMargin为垂直方法的页边空白,是容器的边缘与提示信息的纵向空白(与容器宽度的比)。示例:
msg1.setMargin(-0.2f,0.2f);
14)setText方法:设置显示的文本内容
该方法用于设置Toast视图提示信息显示的文本内容。语法格式:
public void setText(CharSequence s)
其中,参数s为Toast视图提示信息显示的文本内容,也可以通过引用字符串资源Id来表示。
15)show方法:显示提示信息
该方法用于按照指定的设置来显示Toast视图提示信息。语法格式:
public void show()
11.CheckBox类:复选框
CheckBox是Android系统中的复选框控件,这种控件具有双状态,可以选中或不选中。CheckBox类中的很多方法都继承于TextView类,用法完全一致,但也有一些特有的方法。
1)isChecked方法:是否选中
该方法用于检查一个CheckBox复选框是否被选中。如果被选中返回true,否则返回false,该方法常用于获取有多少选中项时。语法格式:
public abstract boolean isChecked()
2)setChecked方法:设置复选框状态
该方法用于设置一个CheckBox复选框是否被选中。语法格式:
public abstract void setChecked(boolean checked)
其中,参数checked为复选框的状态,true表示选中,false表示不选中。
3)toggle方法:切换状态
该方法用于更改一个CheckBox复选框的状态。如果该复选框为选中,则将更改为未选中;如果该复选框未选中,则将更改为选中。语法格式:
public abstract void toggle()
示例:
final CheckBox CB1=(CheckBox)findViewById(R.id.checkBox1);
final CheckBox CB2=(CheckBox)findViewById(R.id.checkBox2);
final CheckBox CB3=(CheckBox)findViewById(R.id.checkBox3);
final CheckBox CB4=(CheckBox)findViewById(R.id.checkBox4);
Button bt=(Button)findViewById(R.id.button1);
CB2.setChecked(true);
bt.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
String str="你选择的食物为:";
CB1.toggle();
CB2.toggle();
CB3.toggle();
CB4.toggle();
if(CB1.isChecked()) str=str+CB1.getText();
if(CB1.isChecked()) str=str+CB2.getText();
if(CB1.isChecked()) str=str+CB3.getText();
if(CB1.isChecked()) str=str+CB4.getText();
Toast.makeText(getApplicationContext(),str,Toast.LENGTH_LONG).show();
}
});
4)setOnCheckedChangeListener方法:设置监听器
该方法用于设置一个CheckBox复选框的监听器,当按钮的状态改变时,将触发该监听器。该方法是获知CheckBox复选框状态改变的主要方法。语法格式:
public void setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener listener)
示例:
final CheckBox CB1=(CheckBox)findViewById(R.id.checkBox1);
final CheckBox CB2=(CheckBox)findViewById(R.id.checkBox2);
final CheckBox CB3=(CheckBox)findViewById(R.id.checkBox3);
final CheckBox CB4=(CheckBox)findViewById(R.id.checkBox4);
Button bt=(Button)findViewById(R.id.button1);
CB1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
if(isChecked)
Toast.makeText(getApplicationContext(),CB1.getText()+"被选中",
Toast.LENGTH_LONG).show();
else
Toast.makeText(getApplicationContext(),CB1.getText()+"被取消",
Toast.LENGTH_LONG).show();
}
});
......
12.RadioButton类和RadioGroup类:单选框
RadioButton是Android系统中的单选按钮,它是一种双状态按钮,可以为选中或不选中。RadioButton往往需要与RadioGroup单选组一起来使用。实际应用中,RadioGroup之内的所有RadioButton每次只能有一个被选中。RadioButton类中的很多方法与TextView类和CheckBox类中的方法相同,但也有一些特有的方法。
1)check方法:选中选项
该方法用于设置一个RadioGroup单选组中某个单选按钮的选中状态。当指定的RadioButton单选按钮被选中后,之前选中的按钮将被取消选中。语法格式:
public void check(int id)
其中,参数id为RadioButton单选按钮的Id。
2)clearCheck方法:清空选项
该方法用于清空一个RadioGroup单选组的选项状态,此时其中的任何一个RadioButton都处于未选中状态。语法格式:
public void clearCheck()
3)setOnCheckedChangeListener方法:设置监听器
该方法用于设置一个RadioGroup单选组的监听器,当其中的单选按钮状态改变时,将触发该监听器。语法格式:
public void setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener listener)
示例:
RadioGroup group=(RadioGroup)findViewById(R.id.radioGroup1);
final RadioButton CB1=(RadioButton)findViewById(R.id.radio0);
final RadioButton CB2=(RadioButton)findViewById(R.id.radio1);
final RadioButton CB3=(RadioButton)findViewById(R.id.radio2);
final RadioButton CB4=(RadioButton)findViewById(R.id.radio3);
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group,int checkedId){
String str="";
if(checkedId==CB1.getId())
str=(String)CB1.getText();
else if(checkId==CB2.getId())
str=(String)CB2.getText();
else if(checkId==CB3.getId())
str=(String)CB3.getText();
else if(checkId==CB4.getId())
str=(String)CB4.getText();
Toast.makeText(getApplicationContext(),"你最喜欢的食物为:",
Toast.LENGTH_LONG).show();
}
});
13.ImageView类:图片
ImageView是Android中的图片显示控件,可以为其指定图片Id、Drawable对象或者来自Content Provider的Url,是个性化用户界面设计的主要方法。
1)setImageResource方法:设置图片资源
该方法用于为ImageView图片控件设置图片资源,该资源以指定Id的形式来表示,这是设置图片显示的一个主要方法。使用时,先将图片资源保存在res文件夹下,并赋予Id,然后就可以在程序中使用了。语法格式:
public void setImageResource(int resId)
其中,参数resId为图片资源的Id。示例:
ImageView image=(ImageView)findViewById(R.id.imageView1);
image.setImageResource(R.drawable.bulb_on);
2)setImageDrawable方法:设置Drawable图片资源
该方法用于为ImageView图片控件设置图片资源,是设置显示图片的一个主要方法。语法格式:
public void setImageDrawable(Drawable drawable)
示例:
ImageView image=(ImageView)findViewById(R.id.imageView1);
image.setImageDrawable(getResources().getDrawable(R.drawable.bulb_off));
3)setAlpha方法:设置透明度
该方法用于为ImageView图片控件设置图片透明度。该方法针对图片资源本身,如果两个ImageView对象显示的是同一个图片资源,设置其中一个ImageView对象的透明度,另外一个会有相同效果。语法格式:
public void setAlpha(int alpha)
其中,参数alpha为透明度,取值范围0~255,255为不透明。示例:
image.setAlpha(100);
4)setScaleType方法:设置填充方式
该方法用于为ImageView图片控件设置图片填充方式,主要用在图片空间的尺寸与图片尺寸不一致的时候。通过指定不同的填充方式,可以实现各种各样的显示效果。语法格式:
public void setScaleType(ImageView.ScaleType scaleType)
其中,参数scaleType为填充方法,在Android系统中提供了如下填充方法:
·ScaleType.CENTER:按原图大小显示图片,但图片宽高大于控件宽高时,截图图片中间部分显示
·ScaleType.CENTER_CROP:按比例放大原图,直至某边等于控件的宽或高
·ScaleType.CENTER_INSIDE:当原图宽高等于控件宽高时,按原图大小居中显示,否则将原图缩放至控件的宽高居中显示
·ScaleType.FIT_CENTER:按比例拉伸图片,拉伸后图片的高度为控件高度,且显示在该控件的中间
·ScaleType.FIT_END:按比例拉伸图片,拉伸后图片的高度为控件高度,且显示在该控件的右边
·ScaleType.FIT_START:按比例拉伸图片,拉伸后图片的高度为控件高度,且显示在该控件的左边
·ScaleType.FIT_XY:拉伸图片,不按比例,以填充控件的宽高
·ScaleType.MATRIX:按照指定的参数拉伸图片以填充控件
示例:
image.setScaleType(ScaleType.FIT_END);
5)getDrawable方法:获取Drawable对象
该方法用于获取ImageView图片控件的Drawable对象,返回值为Drawable类型,可以为其他图片或者Drawable对象赋值。语法格式:
public Drawable getDrawable()
6)getScaleType方法:获取填充方法
该方法用于获取ImageView图片控件的填充方式。语法格式:
public ImageView.ScaleType getScaleType()
14.Spinner类:下拉列表
Spinner是Android系统提供的下拉列表控件,该控件每次只能选择所有项的一项,使用之前需要为该控件设置容纳可选数据的适配器。
1)setAdapter方法:设置适配器
该方法用于为Spinner下拉列表设置适配器,也就是为Spinner提供一个数据源。在使用Spinner下拉列表时,必须首先为其提供可选数据源,然后才可供用户进行选择。该方法是使用Spinner下拉列表的最主要方法。语法格式:
public void setAdapter(SpinnerAdapter adapter)
其中,参数adapter为数据适配器,使用时必须先初始化适配器。
2)setPrompt方法:设置标题
该方法用于为Spinner下拉列表设置标题,这不是使用下拉列表必需的步骤。语法格式:
public void setPrompt(CharSequence prompt)
其中,参数prompt为字符串,也就是Spinner下拉列表中显示的标题内容。示例:
s1.setPrompt("请选择你最喜欢定居的国家");
3)setPromptId方法:指定标题Id
该方法用于为Spinner下拉列表设置标题,通过指定字符串Id的形式设置Spinner下拉列表标题,这是设置标题的第二种方法,推荐采用这种方法,在支持多种语言的场合很有用。语法格式:
public void setPromptId(int promptId)
其中,参数promptId为字符串Id,指向Spinner下拉列表中显示的标题内容。
4)getPrompt方法:获取标题
该方法用于获取Spinner下拉列表设置标题,其返回值为标题字符串内容。语法格式:
public CharSequence getPrompt()
5)setOnItemSelectedListener方法:设置监听器
该方法用于设置Spinner下拉列表的监听器,当用户选择一个项目之后便会触发该监听器。语法格式:
public void setOnItemSelectedListener(AdapterView.OnItemSelectedListener listener)
示例:
Button bt1=(Button)findViewById(R.id.button1);
Spinner s1=(Spinner)findViewById(R.id.spinner1);
String[] mCountries={"中国","美国","英国","德国","俄罗斯","澳大利亚"};
ArrayList<String> allcountries=new ArrayList<String>();
for(int i=0;i<mCountries.length;i++){
allcountries.add(mCountries[i]);
}
ArrayAdapter<String> aspnCountries=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,allcountries);
aspnCountries.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(aspnCountries);
s1.setPromptId(R.string.prompt);
s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onOnItemSelected(AdapterView<?> arg0,View arg1,int arg2,long arg3){
Toast.makeText(spinnertest.this,"你选择的为:"
+arg0.getItemAtPosition(arg2).toString(),Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0){
Toast.makeText(spinnertest.this,"你没有选择任何选项!",
Toast.LENGTH_LONG).show();
}
});
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(getApplicationContext(),"Spinner标题为:"
+s1getPrompt(),Toast.LENGTH_LONG).show();
}
});
15.AutoCompleteTextView类:自动完成文本框
AutoCompleteTextView是Android系统中独具特色的自动完成文本框,外观与普通的EditText完全相同,但当用户输入字符的时候,会根据输入的字符出现匹配的下拉菜单项,供用户选择。这种自动完成文本框可以减少用户的输入,用户只需点击匹配的可选项即可完成输入。
AutoCompleteTextView类继承了EditText类,很多方法都类似,也有一些特有的方法。
1)setAdapter方法:设置适配器
该方法用于为AutoCompleteTextView自动完成文本框设置适配器,也就是提供一个数据源。在使用AutoCompleteTextView自动完成文本框时,必须首先为其提供可选数据源,然后才可供用户进行选择。该方法是使用AutoCompleteTextView自动完成文本框的最主要方法。语法格式:
public void setAdapter(T adapter)
其中,参数adapter为数据适配器,使用时必须先初始化适配器。示例:
String[] str={"China","Chile","Brazil","Beijing","Berlin","Poland","Paris"};
AutoCompleteTextView autotext=(AutoCompleteTextView)findViewById
(R.id.autoCompleteTextView1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,
android.R.layout.simple_dropdowm_item_1line,str);
autotext.setAdapter(adapter);
2)setThreshold方法:设置匹配字符数
该方法用于为AutoCompleteTextView自动完成文本框设置匹配字符数。当用户输入到指定的字符数的时候,才开始在适配器中寻找匹配的项目。该方法可以简化匹配的项目,防止出现过多无关的项目。语法格式:
public void setThreshold(int threshold)
其中,参数threshold为匹配字符数。
3)setCompletionHint方法:设置提示信息
该方法用于为AutoCompleteTextView自动完成文本框设置提示信息。当与用户输入的字符具有匹配项时,显示匹配项,并显示该提示信息,以提示用户。语法格式:
public void setCompletionHint(CharSequence hint)
其中,参数hint为字符串提示信息。示例:
autotext.setCompletionHint("单击选择符合的一项");
4)setDropDownBackgroundResource方法:设置背景资源
该方法用于为AutoCompleteTextView自动完成文本框设置背景资源,该资源以指定Id的形式表示。使用时,先将图片资源保存在res文件夹下,并赋予Id,然后就可以在程序中使用了。语法格式:
public void setDropDownBackgroundResource(int id)
其中,参数id为背景图片的Id。示例:
autotext.setDropDownBackgroundResource(R.drawable.yellow);
5)setDropDownBackgroundDrawable方法:设置Drawable背景资源
该方法用于为AutoCompleteTextView自动完成文本框设置背景资源,该资源是为指定的Drawable。这是另外一种设置背景资源的方法。语法格式:
public void setDropDownBackgroundDrawable(Drawable d)
其中,参数d为Drawable背景资源。示例:
autotext.setDropDownBackgroundDrawable(getResources().getDrawable(R.drawable.yellow));
6)setDropDownWidth方法:设置宽度
该方法用于设置AutoCompleteTextView自动完成文本框的宽度,以屏幕像素为单位。该方法经常与setDropDownHeight一起使用。语法格式:
public void setDropDownWidth(int width)
其中,参数width为自动完成文本框的宽度。
7)setDropDownHeight方法:设置高度
该方法用于设置AutoCompleteTextView自动完成文本框的高度,以屏幕像素为单位。该方法经常与setDropDownWidth一起使用。语法格式:
public void setDropDownHeight(int height)
其中,参数height为自动完成文本框的高度。
8)getThreshold方法:获取匹配字符数
该方法用于获取AutoCompleteTextView自动完成文本框的匹配字符数,返回值为int整型。语法格式:
public int getThreshold()
9)getDropDownWidth方法:获取宽度
该方法用于获取AutoCompleteTextView自动完成文本框的宽度,返回值为int整型。该方法经常与getDropDownHeight方法一起使用。语法格式:
public int getDropDownWidth()
10)getDropDownHeight方法:获取高度
该方法用于获取AutoCompleteTextView自动完成文本框的高度,返回值是int整型。该方法经常与getDropDownWidth方法一起使用。语法格式:
public int getDropDownHeight()
11)setOnItemClickListener方法:设置监听器
该方法用于设置AutoCompleteTextView自动完成文本框的监听器。当用户点击一个项目后,便会触发该监听器。语法格式:
public void setOnItemClickListener(AdapterView.OnItemClickListener l)
示例:
String[] str={"China","Chile","Brazil","Beijing","Berlin","Poland","Paris"};
AutoCompleteTextView autotext=(AutoCompleteTextView)findViewById
(R.id.autoCompleteTextView1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,
android.R.layout.simple_dropdowm_item_1line,str);
autotext.setAdapter(adapter);
autotext.setThreshold(1);
autotext.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,long arg3){
Toast.makeText(getApplicationContext(),"你选择的为:"
+arg0.getItemAtPosition(arg2).toString(),Toast.LENGTH_LONG).show();
}
});
16.Gallery类:画廊
Gallery是Android系统中的画廊控件,很华丽,支持滑动操作,相对于一个水平滚动的图片列表,主要用于相册、图片浏览和选择等功能的应用程序中。
1)setAdapter方法:设置适配器
该方法用于为Gallery画廊设置适配器,也就是为Gallery提供一个数据源。在使用Gallery画廊时,必须首先为其提供可选数据源,然后才可供用户进行操作。这是使用Gallery画廊的最主要方法。语法格式:
public void setAdapter(SpinnerAdapter adapter)
其中,参数adapter为数据适配器,使用前必须先初始化适配器。示例:
final int[] images={R.drawable.bulb_on,R.drawable.bulb_off,R.drawable.icon,
R.drawable.white,R.drawable.yellow};
final Gallery g1=(Gallery)findViewById (R.id.gallery1);
BaseAdapter adapter=new BaseAdapter(){
@Override
public int getCount(){
return images.length;
}
@Override
public Object getItem(int position){
return null;
}
@Override
public long getItemId(int position){
return 0;
}
@Override
public View getView(int position,View convertView,ViewGroup parent){
ImageView iv=new ImageView(firstActivity.this);
iv.setImageResource(images[position]);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setLayoutParams(new Gallery.LayoutParams(230,300));
return iv;
}
};
g1.setAdapter(adapter);
2)setSpacing方法:设置图片间距
该方法用于设置Gallery画廊中各个图片之间的间距。通过适当设置间距,可以防止图片的堆叠,美化界面效果。语法格式:
public void setSpacing(int spacing)
其中,参数spacing为图片之间的间距,以像素为单位。示例:
g1.setSpacing(60);
3)setGravity方法:设置图片对齐方式
该方法用于设置Gallery画廊中图片的对齐方式,可以通过Gravity中的常量来指定。语法格式:
public void setGravity(int gravity)
其中,参数gravity为图片对齐方式,在程序中可以通过引用Gravity常量来表示。示例:
g1.setGravity(Gravity.CENTER);
4)setAnimationDuration方法:设置动画切换时间
该方法用于设置Gallery画廊中图片的切换时间,仅限于动画开始时生效。语法格式:
g1.setAnimationDuration(100);
5)setOnItemClickListener方法:设置监听器
该方法用于设置Gallery画廊监听器。当用户选择点击某张图片之后,便会触发该监听器,这是感知用户选择的主要方法。语法格式:
public void setOnItemClickListener(AdapterView.OnItemClickListener listener)
示例:
g1.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0,view arg1,int arg2,long arg3){
Toast.makeText(getApplicationContext(),"你选择的为第"+arg2+"张照片",
Toast.LENGTH_LONG).show();
}
});