Android界面控件.docx
《Android界面控件.docx》由会员分享,可在线阅读,更多相关《Android界面控件.docx(33页珍藏版)》请在冰豆网上搜索。
Android界面控件
五、基本界面控件-1文本控件
5.1文本编辑控件
5.1.1TextView
图5.1.1TextView
android.widget.TextView一般用来文本展示,继承自android.view.View,在android.widget包中。
他的常用子类有Button,CheckedTextView,Chronometer,DigitalClock,EditText。
常用属性设置:
android:
text=""
文字显示
android:
autoLink=””
链接类型。
Web网址,email邮件,phone电话,map地图。
Linkify。
链接状态时,Web情况可直接调用浏览器进行浏览。
Email直接调用手机的Email软件,phone转到拨打电话页面。
5.1.2EditText
图5.1.2EditText(四种用法:
普通用法、密码框、输入电话、输入数字)
android.widget.EditText为输入框,继承自android.widget.TextView,在android.widget包中。
他的常用子类。
AutoCompleteTextView和MultiAutoCompleteTextView。
ExtractEditText与输入法有关。
常用属性设置:
android:
hint="请输入用户名"
输入框的提示文字
android:
password=""
True为密码框
android:
phoneNumber=""
True为电话框
android:
numeric=""
数字框。
Integer正整数,signed整数(可带负号),decimal浮点数。
android:
digits
设置允许输入哪些字符。
如“1234567890.+-*/%\n()”
5.1.3AutoCompleteTextView
图5.1.3AutoCompleteTextView和MultiAutoCompleteTextView
android.widget.AutoCompleteTextView带提示的输入框,继承自android.widget.EditText,在android.widget包中。
AutoCompleteTextViewhe和MultiAutoCompleteTextView都是自动提示,一个是单选,一个多选。
常用属性设置:
android:
completionThreshold
输入几个字符时提示
AutoCompleteTextView就是一个带自动提示的EditText,当输入字符时,会出现提示窗口,点击选择即可。
首先在layout中定义一个AutoCompleteTextView,然后需要在Activity设置数据源就可以了。
ArrayAdapter的构造方法三个参数为:
上下文的Context,每行的textView布局,数据源。
Java代码
1.this.autoCompleteTextView = (AutoCompleteTextView) super.findViewById(R.id.autoCompleteTextView);
2.ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.arrayadapte_textview, CITY_NAMES);
3.this.autoCompleteTextView.setAdapter(arrayAdapter);
this.autoCompleteTextView=(AutoCompleteTextView)super.findViewById(R.id.autoCompleteTextView);
ArrayAdapterarrayAdapter=newArrayAdapter(this,R.layout.arrayadapte_textview,CITY_NAMES);
this.autoCompleteTextView.setAdapter(arrayAdapter);
MultiAutoCompleteTextView和AutoCompleteTextView的类似,也是带有提示的输入框。
区别在于MultiAutoCompleteTextView可以连续提示,选择一个提示项后会自动添加一个分隔符,在输入时继续提示。
AutoCompleteTextView则属于单选模式的。
MultiAutoCompleteTextView使用时需要设置分隔符类CommaTokenizer。
其他与AutoCompleteTextView一样。
Java代码
1.this.multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
this.multiAutoCompleteTextView.setTokenizer(newMultiAutoCompleteTextView.CommaTokenizer());
5.1.4TextSwitcher
android.widget.TextSwitcher文字切换。
继承自android.widget.ViewSwitcher(ViewGroup),在android.widget包中。
使用方法setInAnimation(Animation),setOutAnimation(Animation)设置动画。
例子,设置ViewSwitcher的动画,并使用数字时钟更改ViewSwitcher的字符串
Java代码
1.public class SwitcherActivity extends Activity implements ViewSwitcher.ViewFactory, View.OnClickListener {
2.
3. private Button buttonChangeText;
4. private TextSwitcher myTextSwitcher;
5. private DigitalClock myDigitalClock;
6.
7. @Override
8. protected void onCreate(Bundle savedInstanceState) {
9. super.onCreate(savedInstanceState);
10. super.setContentView(R.layout.switcher);
11.
12. this.buttonChangeText = (Button) super.findViewById(R.id.buttonChangeText);
13. this.myTextSwitcher = (TextSwitcher) super.findViewById(R.id.myTextSwitcher);
14. this.myDigitalClock = (DigitalClock) super.findViewById(R.id.myDigitalClock);
15. this.buttonChangeText.setOnClickListener(this);
16. this.myTextSwitcher.setFactory(this);
17.
18. this.myTextSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
19. this.myTextSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));
20.
21. }
22.
23. @Override
24. public View makeView() {
25. TextView textView = new TextView(this);
26. textView.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
27. textView.setTextSize(36);
28. return textView;
29. }
30.
31. @Override
32. public void onClick(View v) {
33. this.myDigitalClock.addTextChangedListener(textWatcher);
34. }
35.
36. private android.text.TextWatcher textWatcher = new android.text.TextWatcher() {
37.
38. @Override
39. public void onTextChanged(CharSequence s, int start, int before, int count) {
40. SwitcherActivity.this.myTextSwitcher.setText(SwitcherActivity.this.myDigitalClock.getText());
41. }
42.
43. @Override
44. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
45. }
46.
47. @Override
48. public void afterTextChanged(Editable s) {
49. }
50. };
51.}
publicclassSwitcherActivityextendsActivityimplementsViewSwitcher.ViewFactory,View.OnClickListener{
privateButtonbuttonChangeText;
privateTextSwitchermyTextSwitcher;
privateDigitalClockmyDigitalClock;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
super.setContentView(R.layout.switcher);
this.buttonChangeText=(Button)super.findViewById(R.id.buttonChangeText);
this.myTextSwitcher=(TextSwitcher)super.findViewById(R.id.myTextSwitcher);
this.myDigitalClock=(DigitalClock)super.findViewById(R.id.myDigitalClock);
this.buttonChangeText.setOnClickListener(this);
this.myTextSwitcher.setFactory(this);
this.myTextSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
this.myTextSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
}
@Override
publicViewmakeView(){
TextViewtextView=newTextView(this);
textView.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL);
textView.setTextSize(36);
returntextView;
}
@Override
publicvoidonClick(Viewv){
this.myDigitalClock.addTextChangedListener(textWatcher);
}
privateandroid.text.TextWatchertextWatcher=newandroid.text.TextWatcher(){
@Override
publicvoidonTextChanged(CharSequences,intstart,intbefore,intcount){
SwitcherActivity.this.myTextSwitcher.setText(SwitcherActivity.this.myDigitalClock.getText());
}
@Override
publicvoidbeforeTextChanged(CharSequences,intstart,intcount,intafter){
}
@Override
publicvoidafterTextChanged(Editables){
}
};
}
Xml代码
1.
xml version="1.0" encoding="utf-8"?
>
2.android="
3. android:
layout_width="fill_parent"
4. android:
layout_height="fill_parent"
5. android:
orientation="vertical"
6. android:
gravity="center_horizontal">
7.
8.
五、基本界面控件-2按钮控件
5.2按钮控件
Button的子类
5.2.1Button
图5.2.1Button
android.widget.Button最常用的按钮,继承自android.widget.TextView,在android.widget包中。
他的常用子类CheckBox,RadioButton,ToggleButton。
通常用法:
super.findViewById(id)得到在layout中声明的Button的引用,setOnClickListener(View.OnClickListener)添加监听。
然后再View.OnClickListener监听器中使用v.equals(View)方法判断哪个按钮被按下,进行分别处理。
5.2.2CheckBox
图5.2.2CheckBox
android.widget.CheckBox复选按钮,继承自android.widget.CompoundButton,在android.widget包中。
常用方法:
isChecked()检查是否被选中。
监听按钮状态更改,需要添加setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener);
5.2.3RadioButton
图5.2.3RadioButton
android.widget.RadioButton单选按钮,继承自android.widget.CompoundButton,在android.widget包中。
通常用法:
单选按钮要声明在RadioGroup,RadioGroup是流式布局android.widget.LinearLayout的子类。
单选按钮状态更改的监听,是要给他的RadioGroup添加setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener)监听器。
注意监听器类型和CheckBox是不一样的。
5.2.4ToggleButton
图5.2.4ToggleButton
android.widget.ToggleButton开关形式的按钮,继承自android.widget.CompoundButton,在android.widget包中。
常用属性设置:
android:
textOn=""
选择状态文字
android:
textOff=""
未选状态文字
五、基本界面控件-3图片控件
5.3图片控件
5.3.1ImageView
图5.3.1ImageView
android.widget.ImageView图片控件,继承自android.view.View,在android.widget包中。
最简单的使用方法。
src设置图片路径,可引用drawable的图片。
Xml代码
1.layout_width="wrap_content"
2. android:
layout_height="wrap_content"
3. android:
src="@drawable/tool"/>
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
src="@drawable/tool"/>
动态声明ImageView,设置src。
Java代码
1.try {
2. ImageView imageView = new ImageView(this);
3. InputStream inputStream = super.getAssets().open("home.png");
4. imageView.setImageDrawable(Drawable.createFromStream(inputStream, "tackpic"));
5. this.imageLayout.addView(imageView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
6. LinearLayout.LayoutParams.WRAP_CONTENT));
7.} catch (IOException e) {
8. e.printStackTrace();
9.}
try{
ImageViewimageView=newImageView(this);
InputStreaminputStream=super.getAssets().open("home.png");
imageView.setImageDrawable(Drawable.createFromStream(inputStream,"tackpic"));
this.imageLayout.addView(imageView,newLinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT)