老二牛车AndroidUI之常用控件
- 格式:ppt
- 大小:4.47 MB
- 文档页数:40
《Android基础应用》Android常用控件⏹本章任务⏹使用Android开发使用时间组件⏹使用Android开发使用进度条组件⏹使用Android开发创建底部选项卡⏹本章目标⏹了解Android的组件层次结构⏹掌握常用的日期时间类控件⏹掌握常用的几个容器组件1.Android组件的层次结构UI组件都是View的子类,View有很多子类,它们之间存在树状的继承关系View及其子类结构图TextView及其子类结构图ViewGroup及其子类结构图其下的子类一般作为容器或布局来使用FrameLayout及其子类结构图其下的子类通常作为容器或布局来使用2.时间控件2.1日期时间选择器DatePicker组件可用于输入日期,TimePicker组件可用来选择时间,只能输入小时和分,默认12小时制DatePicker●使用onDateChangedListener监听器来获取用户的日期选择●使用init对组件进行初始化●使用getYear,getMonth,getDayOfMonth方法获得用户选择的年,月,日TimePicker●使用onTimeChangedListener监听器获取用户的时间选择●使用setIs24HourView设置是否以24小时制显示●使用getCurrentHour获得当前的小时数●使用getCurrentMinute获得当前的分钟数示例示例的实现结果2.2时钟组件AnalogClock组件用来以表盘的方式显示当前时间,该表只有时针和分针,DigitClock组件以数字的方式显示当前时间可以显示时分秒,由于DigitClock继承TextView,可以使用TextView 的属性示例示例的实现结果2.3 计时器组件Chronometer和DigitalClock 都继承TextView,但它不显示时间,它显示的是从某个起始时间开始,一共过去了多少时间默认情况下只能输出MM:SS或H:MM:SS的时间格式重要属性●android:format:定义时间的格式如:hh:mm:ss重要方法●setBase(long base):设置倒计时起始时间参数为SystemClock.elapsedRealtime()方法返回的值为当前时刻●setFormat(String format):设置显示时间的格式●start():开始计时●stop():停止计时●setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener):当计时器改变时调用示例示例的实现结果练习——时间组件需求说明:日期时间选择器时钟组件计时器组件按照课件中示例图实施3.进度类组件3.1进度条组件当一个应用在后台执行时,前台界面就不会有什么信息,这时用户根本不知道程序是否在执行、执行进度如何、应用程序是否遇到错误终止等,这时需要使用进度条来提示用户后台程序执行的进度Android系统提供了两大类进度条样式●长形进度条●圆形进度条(大中小三种)默认是普通圆形进度条,是不确定Android进度条默认普通圆形ProgressBar大号圆形ProgressBar小号圆形ProgressBar示例3.2标题进度条进度条除了可以显示在Activity中外,还可以显示在标题中圆形进度条长方形进度条Array示例示例的实现结果3.3 可拖动的进度条组件SeekBar 控件其实就是一个高级点的进度条,就像我们在听歌,看电影用的播放器上的进度条一样,是可以拖动的,可以改变进度的一个进度条控件SeekBar 是ProgressBar 的子类,这个组件不需要设置sencondaryProgress 属性 事件接口OnSeekBarChangeListener 处理组件事件由以下三个方法● public void onStartTrackingTouch(SeekBar seekBar) 按下滑杆后触发● public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) 动滑杆开始滑动时触发● public void onStopTrackingTouch(SeekBar seekBar) 松开滑杆时触发示例示例的实现结果3.4界面评分组件RatingBar是SeekBar和ProgressBar的扩展,用星星来评级如网上购物,对商家的产品和服务进行打分等常用属性●android:numStarts用于评分的五角星数量●android:rating当前的分数●android:stepSize分数的增长单位,默认是0.5事件接口OnRatingBarChangeListener处理组件事件● public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser)示例示例的实现结果属性Style●用于为RatingBar设置不同的风格,一旦设置了style,就不可点击改变值示例示例的实现结果练习——进度组件需求说明:ProgressBarSeekBarRatingBar按照课件中示例图实施4.滚动视图当一个屏幕因为要显示的内容太多而显示不全时,我们可以使用滚动视图来解决这个问题垂直滚动视图ScrollViewScrollView可以用来实现垂直滚动的视图,当它内容组件的高度超过屏幕的高度时,就会在屏幕的右侧出现一个垂直方向的滚动条,通过单击手机上的上下按钮或者上下拂动屏幕可以查看未显示部分注意:在ScrollView标签中只能包含一个组件使用步骤在ScrollView标签中包含一个LinearLayout标签,并设置盖标签的android:orientation属性为vertical在LinearLayout中放置需要显示的组件示例ScrollView只能用来实现垂直滚动的视图,如果要实现水平滚动,需要水平滚动视图HorizontalScrollView示例5.选项卡组件当一个屏幕因为要显示的内容太多而显示不全时,除了使用滚动视图外,还可以使用选项卡组件,选项卡TabHost类似于android系统默认提供的电话薄界面选项卡可以方便的在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆放区域选项卡是有多个Tab组成的,其中每个Tab都可以显示一个View或一个Activity使用步骤●在界面中定义TabHost组件,并为该组件定义该选项卡的内容组件,为内容组件定义id,这些内容组件将要作为某个Tab选项的视图●定义一个继承TabActivity的Activity●调用TabActivity的getHost方法获得TabHost对象●通过TabHost的相关方法来创建和添加选项卡newTabSpec(String tag)创建选项卡addTab(TabHost.TabSpec tabSpec)添加选项卡每个Tab在切换的时候会产生一个事件,通过OnTabChangedListener监听 示例---方式一示例示例的实现结果示例—方式二示例—方式三 Tab底部显示与上个案例的区别是android:id="@android:id/tabcontent的FrameLayout 与android:id="@android:id/tabs"TabWidget互换位置示例—方式四 设置关联Intent练习——创建选项卡需求说明:创建选项卡如图每个选项卡关联不同的Intent默认选择第二项练习——创建底部选项卡需求说明:创建选项卡如图每个选项卡关联不同的Intent默认选择第二项总结本章学习哪几种时间类组件?本章学习了哪几个进度条类组件?TabHost的使用方式?。
android常用控件大全在Android中使用各种控件(View)DatePicker-日期选择控件TimePicker-时间选择控件ToggleButton-双状态按钮控件EditText-可编辑文本控件ProgressBar-进度条控件SeekBar-可拖动的进度条控件AutoCompleteTextView-支持自动完成功能的可编辑文本控件MultiAutoCompleteTextView-支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符分开)ZoomControls-放大/缩小按钮控件Include-整合控件VideoView-视频播放控件WebView-浏览器控件RatingBar-评分控件Tab-选项卡控件Spinner-下拉框控件Chronometer-计时器控件ScrollView-滚动条控件在Android中使用的LayoutFrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角LinearLayout:里面可以放多个控件,但是一行只能放一个控件TableLayout:这个要和TableRow配合使用,很像html里面的tableAbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置(Android界面布局好像还可以直接引用一些view,如ScrollView等)常用控件:1,EditText主要函数:setText/getText设置/获取文本内容,setHint设置缺省显示内容;2,RadioGroup,RadioButtonRadioButton的isChecked()判断是否被选中获取选中RadioButon的ID:设置RadioGroup.setOnCheckedChangeListener方法publiconCheckedChanged(RadioGroupgroup,intcheckedId)//checkedId 是选中RadioButton的ID3,CheckBoxisChecked()判断是否被选中setOnCheckedChangeListener方法监视选中状态改变情况4,Spinnera,显示数据1),硬编码加载通过setAdapter方法设置类型为ArrayAdapter(Contextcontext,inttextViewResId,String[]objects)textViewResourceId:显示内容的ViewID默认设置为yout.simple_spinner_itemobjects:显示的内容2),从资源文件中加载ArrayAdapter.createFromResource(Contextcontext,inttextArrayResId,in ttextViewResId)//textArrayResId是资源ID返回ArrayAdapter<CharSequence>b,设置下拉列表的风格(可选)adapter.setDropDownViewResource(yout.simple_spinner_d ropdown_item);c,监听选项选择变更事件setOnItemSelectedListener设置监听去Spinner.OnItemSelectedListener类须实现以下两个方法publicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition ,longid)//view选中项实例,position选择项在adapter中的位置publicvoidonNothingSelected(AdapterView<?>arg0)d,设置选中项Spinner.setSelection(position)//索引从0开始d,获取选中项getSelectedItemPosition()getSelectedItem()//该值toString()则为选中内容的字符串getSelectedItemId()getSelectedView()5,AutoCompleteTextView1,setAdapter设置数据adapter2,设置输入多少个字符显示提示AutoCompleteTextView.setThreshold(intthreshold)6,MultiAutoCompleteTextView(允许输入多值,多值之间会自动地用指定的分隔符分开)1,setAdapter设置数据adapter2,setTokenizer设置提示Tokenizer缺省的为maTokenizer()以逗号分隔7,DatePicker,TimePickera,DatePicker1),设置初始显示日期init(intYear,intmonth,intday,newDatePicker.OnDateChangedListener(){ publicvoidonDateChanged(DatePickerview,intyear,intmonthOfYear,intd ayOfMonth){}})2),获取设置值getYeah()/getMonth()/getDayOfMonth()b,TimePicker1),设置setCurrentHour(IntegercurrentHour)/setCurrentMinuter(Integercurrent Hour)2,setIs24HourView(Boolean)设置是否为24小时制显示3,监听设置改变setOnTimeChangedListenerc,获取系统当期时间和日期Calendar.getInstance()返回CalendarCalendar.get(intfield)---field可以为Calendar.YEAR/Calendar.MONTH/Calendar.DAY_OF_MONTH/Calendar. HOUR_OF_DAY/Calendar.MINUTE8,ImageView/ImageButton主要方法setImageResource设置显示图片setAlpha设置Alphainvalidate强制更新setScaleType(ScaleTypest)设置图片显示方式,st是一枚举setAdjustViewBounds设置是否调整控件适应图片大小setBackgroundResource设置背景9,ImageSwitcher(显示一系列的图片,但当前只显示一张图片)显示数据setFactory(ViewSwitcher.ViewFactoryfactory)设置要显示的数据,ViewFactory接口须实现方法publicViewmakeView(){}负责提供当前显示的视图(ImageView),且View必须为新实例方法setImageResource设置当前显示的图片getCurrentView()返回当前显示的视图setInAnimation(Animationani)设置视图装载入时的动画效果,AnimationUtils.loadAnimation(Contextcontext,intid)获取动画效果android.R.anim.XXsetOutAnimation(Animationani)设置视图装载入时的动画效果10,Gallery(显示一系列的图片,提供拖动等特效)显示数据setAdapter(SpinnerAdapteradapter)设置数据适配器.数据适配器可以继承自BaseAdapter,该类publicViewgetView(intposition,ViewconvertView,ViewGroupparent)返回当前选择的视图(ImageView)选项选中监听setOnItemSelectedListener11,GridView(表格显示一系列图片)显示数据setAdapter(ListAdapteradapter)设置数据适配器.数据适配器可以继承自BaseAdapter,该类publicViewgetView(intposition,ViewconvertView,ViewGroupparent)返回当前选择的视图(ImageView)选项选中监听setOnItemSelectedListenergetSelectedView()返回当前选中的视图12,ScrollView13,ProgressBarsetIndeterminate设置进度条是否自动运转setProgressStyle设置显示风格.ProgressDialog.STYLE_HORIZONTAL/ProgressDialog.STYLE_SPINNE RsetProgress设置进度setMax设置最大值getProgress()获取当前进度14,SeekBar方法setMax设置最大值getProgress()获取当前值setProgress设置值setIndeterminate监听器setOnSeekBarChangeListener其下有三个方法publicvoidonProgressChanged(SeekBararg0,intarg1,booleanarg2)//数值变更,arg1新值,是否TouchpublicvoidonStartTrackingTouch(SeekBarseekBar)//开始拖动publicvoidonStopTrackingTouch(SeekBarseekBar)//结束拖动15,ListViewa,显示数据setAdapter(ListAdapteradapter)adapter可为newSimpleCursorAdapter/SimpleAdapter(Contextcontext,intlayout,Curs orc,String[]from,int[]to)layout用来显示数据的模板.显示一列可用yout.simple_list_item_1两列可用yout.simple_list_item_2多列则需要自己实现xml视图布局文件c数据(可用ArrayList构造数据)from':to用来显示对应列的空件idb,动态增删数据adapter.notifyDataSetChanged()d,设置背景色setBackGroudRource。
Android学习笔记Android的控件在学习过程中十分重要哦今天将介绍android系统为我们提供的常用控件中的TextView,Button,EditText,RadioButton,CheckBox,ToggleButton,RatingButton七个控件的声明和事件响应。
1、 TextView类似中的Label控件,只读显示控件,可通过getText()获取其android:text 属性、setText()设置其android:text属性。
在res/layout/main.xml的LinearLayout节中添加如下代码来声明TextView。
1 TextView android:layout_ width="fill_parent" android:layout_border="1"height="wrap_content" android:text="@string/hello" android:id="@+id/myTextView" /> 在java代码中可以通过下列代码取得该控件。
1 //取得该控件2 TextView myTextView =(TextView)findViewById(R.id.myTextView);2、 Button按钮控件,用户通过该控件来提交自己的请求,是用户与应用程序交互的最常用控件之一。
1)普通按钮在res/layout/main.xml中声明控件1 Button android:layout_ width="wrap_content" android:layout_border="1"height="wrap_content" android:id="@+id/myButton" />2)用户自定义按钮用户自定义按钮在很大程度上满足了用户个性化的要求。
Android基础之常⽤控件属性介绍⽬录常⽤控件之常⽤属性控件可见性TextViewButtonEditTextImageViewProgressBarAlertDialogProgressDialogToastMenu常⽤控件之常⽤属性控件可见性android:visibility="visible/invisible/gone"visible表⽰控件可见(默认)/invisible表⽰控件不可见/gone表⽰控件不可见且不再占⽤任何屏幕空间TextViewandroid:layout_height/width(match_parent/wrap_content)前者由⽗布局决定,后者由控件内容决定android:gravity指定⽂字的对齐⽅式android:textSize 指定⽂字的⼤⼩(sp单位)android:textColor 指定⽂字颜⾊Buttonandroid:textAllCaps 是否将字母⾃动进⾏⼤写转换默认trueEditTextandroid:hint="提⽰⽂字" 指定⼀段提⽰性⽂本android:maxLines="2" 指定最⼤⾏数为2ImageViewandroid:src="drawable/img_1" 指定⼀张图⽚ProgressBar⽤于在屏幕上显⽰进度条style="?android:attr/progressBarStyleHorizontal" 通过style属性设置成⽔平进度条android:max="100" 通过max设定进度条最⼤值AlertDialog弹出对话框,置顶于所有界⾯元素之上,能够屏蔽掉其他控件的交互能⼒public class MainActivity extends AppCompatActivity implements View.OnClickListener{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button button = findViewById(R.id.button_useful);button.setOnClickListener(this);}@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.button_useful:AlertDialog.Builder dialog = new AlertDialog.Builder(this);dialog.setTitle("This is dialog");dialog.setMessage("Something important.");dialog.setCancelable(false);dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {}});dialog.setNegativeButton("cancel", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {}});dialog.show();break;default:break;}}}ProgressDialog和AlertDialog相类似,区别是,此控件会在对话框中显⽰⼀个进度条注意,如果progressDialog.setCancelable()填写的是false,则你点击back键⽆法取消掉,需要⾃⾏使⽤dismiss()来关闭对话框,否则该控件将会⼀直存在case R.id.button_progress_dialog:ProgressDialog progressDialog = new ProgressDialog(this);progressDialog.setTitle("This is ProgressDialog");progressDialog.setMessage("Loading...");progressDialog.setCancelable(true);progressDialog.show();break;Toast显⽰⽂本Toast.makeText(context,显⽰的内容,显⽰的时间长短);context--Activity实例或getApplicationContext()得到时间长短有两种:Toast.LENGTH_LONG/Toast.LENGHT-SHORT最后.show()⽤来显⽰⽂本显⽰图⽚在写Android的XML布局⽂件时,在ImageView或ImageButton中经常会碰到⼀个提⽰:Missing contentDescription attribute on image.这个属性是做什么的呢?这个属性是⽅便⼀些⽣理功能有缺陷的⼈使⽤应⽤程序的。
控件的使用在布局文件中声明的控件,只是负责界面显示。
如果要想使用控件实现某些具体的功能,就需要在Activity中编辑代码实现。
实现过程如下:(1)使用super.setContentview(yout.某布局layout文件名)来加载布局文件。
(2)使用super.findViewById(R.id.控件的ID)获取控件引用。
(3)使用这个引用对控件进行操作,例如添加控件监听,设置内容等。
文本类控件文本类控件主要用于在界面中显示文本,包含TextView 和EditText 两种。
1. TextViewTextView是android程序开发中最常用的控件之一,它一般使用在需要显示一些信息的时候,它不能输入,只能通过初始化设置或在程序中修改。
TextView常用属性及对应方法的说明属性名称对应方法说明android:autoLink setAutoLinkMask(int) 设置是否将指定格式的文本转话为可点击超链接显示。
传入参数值可取为ALL,EMAIL_ADDRESSES,MAP_ADDRESSES,PHONE_NUMBERS和WEB_URLSandroid:height setHeight(int) 定义TextView的准确高度,以像素为单位android:width setWidth(int) 定义TextView的准确高度,以像素为单位andriod:singleLine setTransformationMethod 设置文本内容只在一行内显示(TransformationMethod)Android:text setText(CharSequence) 为设置TextView设置显示的本内容Android:textColor setTextColor(ColorStateList) 设置TextView的文本颜色Android:textSize setTextSize(float) 设置TextView的文本大小Android:textStyle setTypeface(Typeface) 设置TextView的文本字体Android:ellipize setEllipize(TextUtils.TruncateAt) 如果设置了该属性,当TextView中要显示的内容超过TextView的长度时,会对内容进行省略,可取的值有start、middle、end和marqueeEditText当需要输入用户名和密码时进行注册和登录,实现此功能,就需要使用Android系统中的编辑框EditText。
Android应用程序----UI界面控件(菜单menu)菜单是应用程序中非常重要的组成部分,能够在不占用界面空间的前提下,为应用程序提供了统一的功能和设置界面,并为程序开发人员提供了易于使用的编程接口Android系统支持三种菜单选项菜单(Option Menu)子菜单(Submenu)快捷菜单(Context Menu)选项菜单 q选项菜单是一种经常被使用的Android系统菜单打开方式:通过“菜单键”(MENU key)打开选项菜单分类图标菜单(Icon Menu)扩展菜单(Expanded Menu)选项菜单是一种经常被使用的Android系统菜单打开方式:通过“菜单键”(MENU key)打开选项菜单分类图标菜单(Icon Menu)扩展菜单(Expanded Menu)图标菜单能够同时显示文字和图标的菜单,最多支持6个子项图标菜单不支持单选框和复选框扩展菜单是在图标菜单子项多余6个时才出现,通过点击图标菜单最后的子项“More”才能打开扩展菜单是垂直的列表型菜单不能够显示图标支持单选框和复选框重载Activity的onCreateOptionMenu()函数,才能够在Android应用程序中使用选项菜单初次使用选项菜单时,会调用onCreateOptionMenu()函数,用来初始化菜单子项的相关内容设置菜单子项自身的子项的ID和组ID菜单子项显示的文字和图片等第1行和第2行代码将菜单子项ID定义成静态常量,并使用静态常量Menu.FIRST(整数类型,值为1)定义第一个菜单子项,以后的菜单子项仅需在Menu.FIRST增加相应的数值即可第7行代码是onCreateOptionsMenu()函数返回值,函数的返回值类型为布尔型q返回true将显示在函数中设置的菜单,否则不能够显示菜单第4行代码Menu对象作为一个参数被传递到函数内部,因此在onCreateOptionsMenu()函数中,用户可以使用Menu对象的add()函数添加菜单子项add()函数的语法第1个参数groupId是组ID,用以批量的对菜单子项进行处理和排序第2关参数itemId是子项ID,是每一个菜单子项的唯一标识,通过子项ID使应用程序能够定位到用户所选择的菜单子项第3个参数order是定义菜单子项在选项菜单中的排列顺序第4个参数title是菜单子项所显示的标题添加菜单子项的图标和快捷键:使用setIcon()函数和setShortcut()函数MENU_DOWNLOAD菜单设置图标和快捷键的代码第2行代码中使用了新的图像资源,用户将需要使用的图像文件拷贝到/res/drawable目录下setShortcut()函数第一个参数是为数字键盘设定的快捷键第二个参数是为全键盘设定的快捷键,且不区分字母的大小写重载onPrepareOptionsMenu()函数,能够动态的添加、删除菜单子项,或修改菜单的标题、图标和可见性等内容onPrepareOptionsMenu()函数的返回值的含义与onCreateOptionsMenu()函数相同返回true则显示菜单返回false则不显示菜单下面的代码是在用户每次打开选项菜单时,在菜单子项中显示用户打开该子项的次数第1行代码设置一个菜单子项的计数器,用来统计用户打开“上传设置”子项的次数第4行代码是通过将菜单子项的ID传递给menu.findItem()函数,获取到菜单子项的对象第5行代码是通过MenuItem的setTitle()函数修改菜单标题onOptionsItemSelected ()函数能够处理菜单选择事件,且该函数在每次点击菜单子项时都会被调用下面的代码说明了如何通过菜单子项的子项ID执行不同的操作onOptionsItemSelected ()的返回值表示是否对菜单的选择事件进行处理如果已经处理过则返回true,否则返回false第2行的MenuItem.getItemId()函数可以获取到被选择菜单子项的ID完整代码请参考OptionsMenu程序程序运行后,通过点击“菜单键”可以调出程序设计的两个菜单子项子菜单子菜单是能够显示更加详细信息的菜单子项菜单子项使用了浮动窗体的显示形式,能够更好适应小屏幕的显示方式Android系统的子菜单使用非常灵活,可以在选项菜单或快捷菜单中使用子菜单,有利于将相同或相似的菜单子项组织在一起,便于显示和分类子菜单不支持嵌套子菜单的添加是使用addSubMenu()函数实现第1行代码在onCreateOptionsMenu()函数传递的menu对象上调用addSubMenu()函数,在选项菜单中添加一个菜单子项,用户点击后可以打开子菜单addSubMenu()函数与选项菜单中使用过的add()函数支持相同的参数,同样可以指定菜单子项的ID、组ID和标题等参数,并且能够通过setIcon()函数菜单所显示的图标第2行代码使用setHeaderIcon ()函数,定义子菜单的图标第3行定义子菜单的标题,若不规定子菜单的标题,子菜单将显示父菜单子项标题,即第1行代码中“上传设置”第4行和第5行在子菜单中添加了两个菜单子项,菜单子项的更新函数和选择事件处理函数,仍然使用onPrepareOptionsMenu()函数和onOptionsItemSelected ()函数以上小节的代码为基础,将“上传设置”改为子菜单,并在子菜单中添加“上传参数A”和“上传参数B”两个菜单子项。
一、概述Android的控件体系分为三个类别:1、基本控件2、布局3、容器这三类控件主要分布在两个包中:1、android.view 提供抽象接口2、android.widget 提供系统内置的大部分控件整个系统得控件都继承自android.view.View ,而布局及容器类继承自android.view.ViewGroup。
基本控件主要包括ImageView、ProgressBar、SurfaceView、TextView、EditText等。
布局虽然布局跟容器均继承自android.view.ViewGroup,但并不像SWT那样提供了面板+布局的结构,而是每种Layout就是一中特殊的面板,包括AbsoluteLayout、FrameLayout、LinearLayout、TableLayout、RelativeLayout等。
容器这里的容器是指采用了特定的布局并且提供了行为的控件,包含ListView、GridView、Gallery、Spinner等。
二、android常用控件android常用控件之TextView、EditView、Button、Menu示例:一个计算应用程序,输入2个数字,点击按钮进行计算两个数的积并且返回结果。
当点击模拟器右侧的Menu按钮,在输入界面中显示一个有关于和退出的菜单。
项目运行效果图:开发步骤:1、新建一个Android项目2、在布局文件中依次添加EditText、TextView、EditText、Button(一定要按照界面上控件显示的顺序在布局文件中添加)3、再新建一个布局文件用来显示计算的结果;在这个布局文件中添加一个LinearLayout和一个TextView(默认的布局文件中默认就有一个LinearLayout,所以不需要手动添加,新建的布局文件默认为空,所以需要手动添加)4、编写第一个Activitya) 让Activity继承android的Activityb) 重写Activity的onCreate()方法c) 设置这个Activity的布局文件d) 根据控件id获得控件对象e) 设置控件的值,这个值引用的是string.xml中的值,所以还需要在string.xml文件中设置(最好是使用string.xml中的值,以便实现国际化);这个在布局文件中也能设置;5、新建一个Activity,ResultActivitya) 让Activity继承android的Activityb) 重写Activity的onCreate()方法c) 设置这个Activity的布局文件d) 根据控件id获得控件对象6、在第一个Activity中编写Button的监听器a) 取得两个EditText控件的值b) 创建Intent对象c) 将这两个值存放到Intent对象当中d) 使用Intent对象启用ResultActivitye) 将监听器与Button绑定7、在第二个Activity(ResultActivity)中获得Intent对象a) 获得Intent对象中保存的值并强制转换成int类型b) 计算两个值的积c) 设置控件值8、在第一个Activity中,重写onCreateOptionsMenu()方法,这个方法是用于添加菜单中的菜单项,我们添加两个菜单项9、再在第一个Activity中重写onOptionsItemSelected()方法,这个方法是当点击菜单中菜单项时调用。
Android笔记---常⽤控件以及⽤法这篇⽂章主要记录下Android的常⽤控件以及使⽤的⽅法,Android 给我们提供了⼤量的UI控件,合理地使⽤这些控件就可以⾮常轻松地编写出相当不错的界⾯,这些是Android学习的基础,没有什么业务逻辑,⽐较好⼊⼿。
这⾥主要涉及到的控件包括:⽂本类控件TextView 负责展⽰⽂本,⾮编辑EditText 可编辑⽂本控件按钮类控件Button 按钮ImageButton 图⽚按钮RadioButton与RadioGroup 单选按钮CheckBox 复选按钮图⽚控件ImageView 负责显⽰图⽚进度条控件ProgressBar 进度条设置控件的属性有两种⽅法,⼀种是在布局⽂件中设置参数,另⼀种是在代码中调⽤对应⽅法实现,以下描述的都只是在布局⽂件中设置参数的⽅法。
介绍这些控件之前先介绍下所有控件都有的4个属性id、layout_width以及layout_height,以及android:visibility。
android:id = "@+id/xxx" @+id/xxx表⽰新增控件命名为xxxandroid:layout_width = "xxx"android:layout_height = "xxx"//下⾯这个属性默认可以省略android:visibility = "visible"12345其中layout_width以及layout_height属性可选值有两种 match_parent和wrap_content(其实从Android 2.2开始fill_parent改名为match_parent ,从API Level为8开始我们可以直接⽤match_parent来代替fill_parent):match_parent表⽰让当前控件的⼤⼩和⽗布局的⼤⼩⼀样,也就是由⽗布局来决定当前控件的⼤⼩;wrap_content表⽰让当前控件的⼤⼩能够刚好包含住⾥⾯的内容,也就是由控件内容决定当前控件的⼤⼩。
Android中常见控件的介绍和使⽤1 TextView⽂本框1.1 TextView类的结构TextView 是⽤于显⽰字符串的组件,对于⽤户来说就是屏幕中⼀块⽤于显⽰⽂本的区域。
TextView类的层次关系如下:ng.Object ↳ android.view.View ↳ android.widget.TextView直接⼦类: Button, CheckedTextView, Chronometer, DigitalClock, EditText间接⼦类: AutoCompleteTextView, CheckBox, CompoundButton, ExtractEditText,MultiAutoCompleteTextView, RadioButton, ToggleButton 1.2 TextView类的⽅法主要⽅法功能描述返回值TextView TextView的构造⽅法NullgetDefaultMovementmethod获取默认的箭头按键移动⽅式MovementmethodgetText获得TextView对象的⽂本CharSquencelength获得TextView中的⽂本长度IntgetEditableText取得⽂本的可编辑对象,通过这个对象可对TextView的⽂本进⾏操作,如在光标之后插⼊字符VoidgetCompoundPaddingBottom返回底部填充物IntsetCompoundDrawables设置图像显⽰的位置,在设置该Drawable资源之前需要调⽤setBounds(Rect)VoidsetCompoundDrawablesWithIn trinsicBounds 设置Drawable图像的显⽰位置,但其边界不变VoidsetPadding根据位置设置填充物VoidgetAutoLinkMask返回⾃动连接的掩码VoidsetTextColor设置⽂本显⽰的颜⾊VoidsetHighlightColor设置⽂本选中时显⽰的颜⾊VoidsetShadowLayer设置⽂本显⽰的阴影颜⾊VoidsetHintTextColor设置提⽰⽂字的颜⾊VoidsetLinkTextColor设置链接⽂字的颜⾊VoidsetGravity设置当TextView超出了⽂本本⾝时横向以及垂直对齐VoidgetFreezesText设置该视图是否包含整个⽂本,如果包含则返回真值,否则返回假值Boolean1.3 TextView标签的属性XML属性属性名称描述android:autoLink设置是否当⽂本为URL链接/email/电话号码/map时,⽂本显⽰为可点击的链接。
1,TextView用于在界面上显示文字,内容不可编辑,继承View2,EditText是可供用户编辑内容的文本框。
继承TextView,可重用TextView定义的属性3,按钮控件Button,继承TextView,ImageButton继承ImageViewButton可根据用户的操作动态切换图片,需定义drawable资源<selector><?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:drawable="@drawable/app_icon" android:state_pressed="true"/> <item android:drawable="@drawable/app_notes"android:state_pressed="false"/> </selector>4,单选按钮RadioButton继承至Button按钮。
可通过android:checked属性指定是否选中。
一组RadioButton只能选择其一,因此它需要与RadioGroup一起使用。
5,复选框按钮CheckBox。
继承至Button按钮。
可通过android:checked属性指定是否选中7,AnalogClock继承View,重写了onDraw()方法。
显示模拟时钟,不会显示当前的秒数。
DigitalClock继承TextView.显示数字时钟,会显示当前秒数。
8,图片显示控件ImageView,继承View,任何Drawable对象都可以用它来显示,注意src 属性和background属性的区别9,自动完成AutoCompleteTextView继承至EditText,当用户输入信息后,会显示下拉菜单10,MultiAutoCompleteTextView可支持选择多个值,分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配,它与AutoCompleteTextView的区别是AutoCompleteTextView一个文本框只能输入一个值,而MultiAutoCompleteTextView可以输入多个值,中间的分隔符在代码中设置11,日期时间控件DatePicker/TimePicker,继承至FrameLayout,DatePicker用于选择日期,TimePicker用于选择时间12,进度条ProgressBar用于向用户显示某个耗时操作完成的百分比,可通过style属性为其指定风格,setProgress(int) 设置进度完成的百分比,incrementProgressBy(int) 设置增量/减量13,拖动条seekBar,继承AbsSeekBar,通常用于对系统的某些参数进行调节,允许改变滑块的外观,Android:thumb 用来指定一个Drawable对象,OnSeekBarChangeListener可处理滑动事件14,星级评分条RatingBar,继承AbsSeekBar,OnRatingBarChangeListener可处理评分事件15,代表应用程序的菜单Menu,Android中的菜单需要用户单击手机上的“MENU”按键时才会显示。