版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲人:温春水按钮相关组件3日期/时间相关组件列表组件4进度条组件课程目录1256文本相关组件其他重要组件主要内容:掌握常用的Android图形界面组件的创建方式、特征等,包括文本组件、按钮组件、列表组件等掌握常用组件的事件处理步骤组件的常用属性以及事件处理ListView、GridView等视图容器组件的使用TextView往往用来向用户显示文本,如邮件正文或应用程序标签等。API中对应android.widget.TextView类<TextViewandroid:background="#FF00FF“android:layout_gravity="center“android:layout_height="wrap_content"android:layout_margin="60dp"android:layout_width="fill_parent“android:padding="40dp"android:text="@string/hello"android:textColor="#0000FF"/>文本的颜色和背景android:textColor=“#0000FF”android:background=“#0000FF”TextView的对齐方式android:layout_gravity=“center”字体大小android:textSize=“20px”单行显示android:singleLine=“true”android:gravity用于设置View中内容相对于View组件的对齐方式
android:layout_gravity用于设置View组件相对于Container的对齐方式LinearLayout中有android:layout_gravityRelativelayout中没有android:layout_gravityEditText是TextView类的子类,具有TextView所有属性EditText可以编辑文本EditText可以指定文本的类型,通过三种属性可以指定android:digitsandroid:inputTypeandroid:numeric<EditTextandroid:background="#FFFFFF"android:digits="
XxYy“android:layout_height="wrap_content“android:layout_margin="10dp"android:layout_width="200dp"android:textColor="#000000"/>Button类继承了TextView类在布局文件中,使用属性指定Button的属性,如android:text指定Button显示的文本<Button
android:id="@+id/button1"android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="普通按钮"/>如何做出漂亮的按钮?android:background="@drawable/ic_launcher"Button经常使用OnClickListener监听点击事件使用Button类的setOnClickListener方法注册监听器Button
button1=(Button)
this.findViewById(R.id.button1);button1.setOnClickListener(new
OnClickListener(){public
void
onClick(View
arg0)
{//
TODO
Auto-generated
method
stubTextView
view=(TextView)
findViewById(R.id.text);view.setText("您点击了普通按钮");}});ImageButton是只显示图像的按钮,是ImageView的子类<ImageButtonandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:src="@drawable/icon"/>如果按钮既需要显示图像又显示文字,则使用<button>配置<Button
android:drawablePadding="20dp"android:drawableRight="@drawable/icon"android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="拍照"/>RadioButton可以构建一组单选按钮一组互斥的单选按钮必须在一个RadioGroup中<RadioGroup
android:layout_height="wrap_content"android:layout_width="wrap_content"><RadioButtonandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:text="iPhone"/><RadioButtonandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:text="Android"/><RadioButtonandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:text="Phone"/></RadioGroup><RadioGroupandroid:id="@+id/gender"android:layout_width="wrap_content"android:orientation="horizontal"android:layout_height="wrap_content"
><RadioButtonandroid:id="@+id/radioButton1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:text="Female"
/><RadioButtonandroid:id="@+id/radioButton2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Male"
/></RadioGroup>CheckBox多用于多选应用<CheckBox
android:id="@+id/checkbox1"android:layout_height="wrap_content"android:layout_width="fill_parent"android:text="1、我喜欢阅读"/><CheckBox
android:id="@+id/checkbox2"android:layout_height="wrap_content"android:layout_width="fill_parent"android:text="2、我喜欢旅游"/><CheckBox
android:id="@+id/checkbox3"android:layout_height="wrap_content"android:layout_width="fill_parent"android:text="3、我喜欢烘焙"/>RadioGroup
rg
=
(RadioGroup)
this.findViewById(R.id.gender);rg.getCheckedRadioButtonId();CheckBox
cb
=(CheckBox)this.findViewById(R.id.checkBox1);cb.isChecked();<View
android:layout_height="10px"android:layout_width="match_parent"android:background="#000fff”/>ToggleButton与Button的功能基本相同ToggleButton多了一个表示“开/关”状态的指示条<ToggleButton
android:id="@+id/toggleButton"android:layout_height="wrap_content"android:layout_marginLeft="30dp"android:layout_width="wrap_content"android:textOff="打开照相机"android:textOn="关闭照相机"/>res--创建drawable文件夹--创建switch_btn.xml资源文件--作以下配置<?xml
version="1.0"
encoding="utf-8"?><selectorxmlns:android="
"><item
android:state_checked="true"
android:drawable="@drawable/ios7_switch_on"
/><item
android:drawable="@drawable/ios7_switch_off"
/></selector>其中:android:state_checked="true"表示选中on时候的,效果为:android:drawable="@drawable/ios7_switch_on"反之就是未选中off情况下的效果:android:drawable="@drawable/ios7_switch_off"之后在布局文件中写控件:<ToggleButtonandroid:id="@+id/mTogBtn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:background="@android:color/transparent"android:button="@drawable/toggle_btn"android:checked="false"android:text=""android:textOff=""android:textOn=""
/>android:textOn=""
表示:选中情况下显示的文本android:textOff=""
表示:未选中情况下显示的文本android:checked="false"
表示:初始化时候,默认是未选中的android:button="@drawable/toggle_btn"
表示:button样式android:background=“@android:color/transparent”
表示:背景,这里不用它的默认背景,所以设置为透明之后在主程序中实例化,并设置checked点击监听ToggleButton
mTogBtn
=
(ToggleButton)
findViewById(R.id.mTogBtn);//获取到控件mTogBtn.setOnCheckedChangeListener(new
OnCheckedChangeListener()
{public
void
onCheckedChanged(CompoundButton
buttonView,boolean
isChecked)
{if(isChecked){//选中}else{//未选中}}});//添加监听事件参考:SwitchButtonAndroidDatePicker组件可以输入日期。范围是1900-1-1~2100-12-31TimePicker组件可以输入时间,只能输入小时和分钟,默认情况是12小时制对应的监听器分别是OnDateChangedListener和OnTimeChangedListenerAnalogClock用表盘方式显示当前时间,有时针和分针两个指针DigitalClock用数字方式显示当前时间,可以显示时、分、秒。<AnalogClock
android:layout_height="wrap_content"android:layout_width="fill_parent"/><DigitalClock
android:layout_height="wrap_content"android:layout_width="wrap_content"android:textSize="18dp"/>参考:example/DateTimeAndroidProgressBar用来显示任务或工作的完成率Android系统中可以实现圆形或者水平的进度条ProgressBar类中有setProgress和getProgress方法用来设置及获取当前进度ProgressBar类中有setSecondaryProgress和getSecondaryProgress方法用来设置及获取二级进度SeekBar是ProgressBar的子类,使用方式和
ProgressBar类似拖动条滑动的相关事件接口是OnSeekBarChangerListener,该接口中三个方法onProgressChanged:滑动滑杆onStartTrackingTouch:按住滑杆onStopTrackingTouch:松开滑杆RatingBar组件用来实现评分功能RatingBar常用的布局属性android:numStars:用于评分的五角星个数android:rating:指定当前的分数android:stepSize:指定分数的增量单位style:设置RatingBar的风格<RatingBar
android:id="@+id/ratingbar2"style="?android:attr/ratingBarStyleSmall"android:layout_height="wrap_content"android:layout_width="wrap_content"android:numStars="5"
android:rating="2"android:stepSize="0.5"/>RatingBar
rb
=(RatingBar)this.findViewById(R.id.ratingbar2);System.out.println("===========rating====="+rb.getRating());rb.setRating(3);参考:ProgressbarAndSeekBarAndRatingBarAndroidImageView用来在屏幕上显示图片使用android:src属性设置TextView的图片源。或者调用ImageView类的setImageResource(intresId)方法可以为ImageView设置显示的图片<ImageViewandroid:src="@drawable/moon"android:adjustViewBounds="true"android:layout_width="wrap_content"android:layout_height="wrap_content"
/>Spinner的功能和ListView组件类似Spinner的数据也是通过Adapter装载,使用数组或者List对象放值:String
str[]={“Data”,“英语”,“Java”,“数学"};s
=
(Spinner)
this.findViewById(R.id.spinner1);s.setAdapter(newArrayAdapter(this,android.R.layout.simple_spinner_item,str));取值:String
str
=
s.getSelectedItem().toString();TabHost是一个装载选项卡窗口的容器,实现分模块显示的效果。类似新浪微博客户端、微信客户端。继承TabActivity类在Activity中通过getTabHost()方法取得TabHost.public
class
MainActivity
extends
TabActivity
{
@Overridepublic
void
onCreate(Bundle
savedInstanceState)
{super.onCreate(savedInstanceState);//获取TabHost组件TabHost
tabHost
=
getTabHost();//新建一个标签页TabSpec
tabSpec1
=
(TabSpec)tabHost.newTabSpec("Home").setIndicator("Home“);//给标签页设置内容tabSpec1.setContent(new
Intent(MainActivity.this,HomeActivity.class));//把标签页添加到TabHost当中去
tabHost.addTab(tabSpec1);TabSpec
tabSpec2
=(TabSpec)tabHost.newTabSpec("COMMENT").setIndicator("COMMENT");tabSpec2.setContent(new
Intent(MainActivity.this,CommentActivity.class));tabHost.addTab(tabSpec2);}}Android中的五种对话框AlertDialogCharacterPickerDialogDatePickerDialogTimePickerDialogProgressDialogAlertDialog类继承了Dialog类是其他对话框类的父类AlertDialog类有一个重要的内嵌类-BuilderAlertDialog类的常用方法Dialogdialog
=
new
AlertDialog.Builder(MainActivity.this).setTitle("Title").setMessage("Message").setPositiveButton(("确定"),new
DialogInterface.OnClickListener(){@Overridepublic
void
onClick(DialogInterface
dialog,int
which)
{System.out.println("====");}}).setNegativeButton(("取消"),new
DialogInterface.OnClickListener(){@Overridepublic
void
onClick(DialogInterface
dialog,int
which)
{//...}}).create();dialog.show();使用AlertDialog可以创建出各种对话框如果要完全定制自己的对话框,可以自定义对话框AlertDialog.Builder类的setView方法new
AlertDialog.Builder(this).setView(布局文件).show()AlertDialog.Builder
builder
=
new
AlertDialog.Builder(MainDialog.this);LayoutInflater
factory
=
LayoutInflater.from(this);final
View
textEntryView
=
factory.inflate(R.layout.test,
null);builder.setIcon(R.drawable.icon);builder.setTitle("自定义输入框");builder.setView(textEntryView);LayoutInflater:
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于
findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。builder.setPositiveButton("确定",new
DialogInterface.OnClickListener(){
public
void
onClick(DialogInterface
dialog,
int
whichButton){EditText
userName
=
(EditText)textEntryView.findViewById(R.id.etUserName);EditTextpassword=(EditText)textEntryView.findViewById(R.id.etPassWord);}});builder.setNegativeButton("取消",new
DialogInterface.OnClickListener(){
public
void
onClick(DialogInterface
dialog,
int
whichButton){}});builder.create().show();取消按钮setNegativeButton
(CharSequence
text,
DialogInterface.OnClickListener
listener)setNegativeButton
(int
textId,
DialogInterface.OnClickListener
listener)确认按钮setPositiveButton
(CharSequence
text,
DialogInterface.OnClickListener
listener)setPositiveButton
(int
textId,
DialogInterface.OnClickListener
listener)覆盖按钮setNeutralButton
(int
textId,
DialogInterface.OnClickListener
listener)setNeutralButton
(CharSequence
text,
DialogInterface.OnClickListenerlistener)选项菜单通过硬件调用的菜单情景菜单通过上下文调用的菜单MenuubMenuSContextMenuMenuItemActivity类的onCreateOptionsMenu方法用来创建选项菜单通过硬件调用的菜单通过手机上的菜单键进行调用public
class
MenuActivity
extends
Activity
{@Overridepublic
boolean
onCreateOptionsMenu(Menu
menu)
{MenuItem
mItem1=menu.add(1,1,1,"设置");
MenuItem
mItem2=menu.add(1,2,2,"资料");
MenuItem
mItem3=menu.add(1,2,3,"信息");
return
true;}getMenuInflater().inflate(R.menu.main,
menu);<menu
xmlns:android=""
><item android:id="@+id/menu_settings" android:orderInCategory="1" android:title="设置"/><itemandroid:id="@+id/menu_about"android:orderInCategory="2"android:title="关于"/><itemandroid:id="@+id/menu_quit"android:orderInCategory="3"android:title="退出"/></menu>menu.add方法的参数:
第一个int类型的group
ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。
第二个int类型的item
ID参数,代表的是项目编号。这个参数非常重要,一个item
ID对应一个menu中的选项。在后面使用菜单的时候,就靠这个
item
ID来判断你使用的是哪个选项。
第三个int类型的order
ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的显示顺序来显示。第四个String类型的title参数,表示选项中显示的文字。public
boolean
onOptionsItemSelected(MenuItem
item){System.out.println("onOptionsItemSelected------>"+item.getOrder());return
true;}Android
的上下文菜单类似于PC
上的右键菜单。当为一个视图注册了上下文菜单之后,长按(2
秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单。如TextView注意:Android
的上下文菜单不支持图标或快捷键。1.
覆盖Activity
的onCreateContenxtMenu()方法,调用Menu
的add
方法添加菜单项(MenuItem)。2.
覆盖Activity
的onContextItemSelected()方法,响应上下文菜单菜单项的单击事件。3.setOnCreateContextMenuListener(this);为视图注册上下文菜单。注册上下文菜单:TextView
tv
=
(TextView)this.findViewById(R.id.tv1);tv.setOnCreateContextMenuListener(this);设置菜单:public
void
onCreateContextMenu(ContextMenu
menu,
View
v,ContextMenuInfo
menuInfo){super.onCreateContextMenu(menu,
v,
menuInfo);menu.setHeaderTitle("Hello");menu.add(0,
3,
6,
"Delete");menu.add(0,
4,
1,
"Copy");}结果测试:public
boolean
onContextItemSelected(MenuItem
item)
{System.out.println("=========="+item.getItemId());System.out.println("==========="+item.getOrder());return
super.onContextItemSelected(item);}ListView用于以垂直列表方式显示数据项ListView相关的三个主要接口和类ListViewListActivityListAdapter声明ListView布局文件声明列表项的布局文件继承Activity或ListActivity,覆盖onCreate方法创建Adapter对象将Adapter对象设置给ListView进行显示<ListView
android:id="@+id/booklist"android:layout_height="wrap_content"android:layout_width="fill_parent"/>实现列表显示。ListView通常有两个职责。(1)将数据填充到布局。(2)处理用户的选择点击等操作。ListView的创建需要3个元素。(1)ListView中的每一列的View。(2)填入View的数据。(3)连接数据与ListView的适配器。适配器是一个连接数据和ListView的桥梁,通过它能有效地实现据与ListView的分离设置,使ListView与数据的绑定更加简便,修改更加方便ArrayAdapter
aa
=
new
ArrayAdapter(this,android.R.layout.simple_list_item_1,list);lv.setAdapter(aa);lv.setOnItemClickListener(new
OnItemClickListener(){public
void
onItemClick(AdapterView<?>
arg0,
View
arg1,
int
arg2,long
arg3)
{System.out.println("============"+list.get(arg2));}});MyListViewAdapter
mlva
=
new
MyListViewAdapter(this,listStudent);lv.setAdapter(mlva);public
MyListViewAdapter(Context
context,
List<Student>
data)
{this.context
=
context;this.stuList
=
data;this.layoutInflater
=
LayoutInflater.from(context);}public
View
getView(int
position,
View
convertView,
ViewGroup
parent)
{convertView
=
layoutInflater.inflate(R.layout.listitem,
null);vh.image
=
(ImageView)
convertView.findViewById(R.id.tv_desc);vh.title
=
(TextView)
convertView.findViewById(R.id.tv_title);return
convertView;}public
View
getView(int
position,
View
convertView,ViewGroup
parent)
{convertView
=
layoutInflater.inflate(R.layout.listitem,
null);vh.title
=(TextView)
convertView.findViewById(R.id.tv_title);vh.title.setText(((Student)
stuList.get(position)).getStuTitle());return
convertView;}MyListViewAdatperGridView是以网格的形式排列所包含的内容,每个单元格的内容可以是任意一个View组件与ListView相同,GridView通过Adapter封装后台的数据,必须调用setAdapter()方法将GridView和数据绑定GridView可以使用OnItemClickListener及OnItemSelectedListener监听事件//准备要添加的数据条目List<Map<String,
Object>>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光电催化材料课程设计
- 光控音响器课程设计
- 光学薄膜课程设计
- 光伏电能计量课程设计
- 傅里叶光学课程设计
- 供配电设计课程设计
- 供热工程及课程设计
- 佛法因果解说课程设计
- 仿生水母机械课程设计
- 主体沉降裂缝施工方案
- (国网)装表接电技能理论考试题库(浓缩600题)
- 五年级语文上册第一单元大单元研修说课标说教材
- 糖尿病秋冬季节注意事项
- 八字基础图文解说ppt
- GB 41731-2022船用气胀式救生衣
- GB/T 39892-2021汽车产品缺陷线索报告及处理规范
- JB-T 10767-2022 装载机铜基湿式粉末冶金摩擦片 技术规范
- GB/T 20041.1-2015电缆管理用导管系统第1部分:通用要求
- GA 165-2016防弹透明材料
- 部编人教版道德与法治四年级上册全册完整版课件
- 人教版新课标小学美术六年级上册全册优质课件(所有课时)
评论
0/150
提交评论