实验二:UI设计
实验目的
本次实验的目的是让大家熟悉Android开发中的UI设计,包括了解和熟悉常用控件的使用、界面布局和事件处理等内容。
实验要求
- 熟悉和掌握界面控件设计
- 了解Android界面布局
- 掌握控件的事件处理
实验内容
1.常用控件介绍
Android中有许多常用控件(简单分类):
文本框:TextView、EditText
按钮:Button、RadioButton、RadioGroup、CheckBox、ImageButton
列表:List、ExpandableListView、Spinner、AutoCompleteTextView、GridView、ImageView
进度条:ProgressBar、ProgressDialog、SeekBar、RatingBar
选择器:DatePicker、TimePicker
菜单:Menu、ContentMenu
对话框:Dialog、ProgressDialog
2.控件的实现
在上一个实验中,我们用TextView实现了在界面显示一句“Hello The Android World!”。
1. 创建项目并添加控件
打开Android Studio,创建一个新的项目。
在activity_main.xml中添加一个TextView和一个Button:
2. 在代码中处理按钮点击事件
在MainActivity.java中,通过findViewById获取控件的引用,并为Button设置点击事件:
运行程序后,界面会显示一个TextView和一个Button。
当用户点击按钮时,会弹出一个Toast消息,并且TextView的文本内容会变为“Button Clicked!”。
3. 实现嵌套布局
在activity_main.xml中使用LinearLayout嵌套多个TextView:
3.控件的属性
可以直接在类中为控件设置属性,也可以在xml文件中设置属性。每个控件都有一系列的属性,例如id、size、text、color等等,大家可以找找API查看控件的属性。
TextView android:text, android:textSize, android:textColor, android:background, android:gravity, android:padding
Button android:text, android:textColor, android:background, android:onClick
EditText android:hint, android:inputType, android:maxLines, android:minLines
ImageView android:src, android:scaleType, android:adjustViewBounds
ProgressBar android:progress, android:max, android:indeterminate
CheckBox android:text, android:checked, android:onClick
RadioButton android:text, android:checked, android:onClick
二、界面布局
Android中有很多布局:
l FrameLayout:最简单的一个布局对象。它里面只显示一个显示对象。Android屏幕元素中所有的显示对象都将会固定在屏幕的左上角,不能指定位置。但允许有多个显示对象,但后一个将会直接在前一个之上进行覆盖显示,把前一个部份或全部挡住(除非后一个是透明的)。
l LinearLayout:以单一方向对其中的显示对象进行排列显示,如以垂直排列显示,则布局管理器中将只有一列;如以水平排列显示,则布局管理器中将只有一行。同时,它还可以对个别的显示对象设置显示比例。
l TableLayout:以拥有任意行列的表格对显示对象进行布局,每个显示对象被分配到各自的单元格之中,但单元格的边框线不可见。
l AbsoluteLayout:允许以坐标的方式,指定显示对象的具体位置,左上角的坐标为(0, 0),向下及向右,坐标值变大。这种布局管理器由于显示对象的位置定死了,所以在不同的设备上,有可能会出现最终的显示效果不一致。
l RelativeLayout:允许通过指定显示对象相对于其它显示对象或父级对象的相对位置来布局。如一个按钮可以放于另一个按钮的右边,或者可以放在布局管理器的中央。
布局中可以放置控件,而每个布局又可以嵌套其他布局,这种思想和之前学习java的布局是一样的。
三、事情处理
事件监听和时间处理的概念大家以前都学习过,android中主要有如下事件方法:
onClick(View v) 一个普通的点击按钮事件
boolean onKeyMultiple(int keyCode,int repeatCount,KeyEvent event)用于在多个事件连续时发生,用于按键重复
boolean onKeyDown(int keyCode,KeyEvent event) 用于在按键进行按下时发生
boolean onKeyUp(int keyCode,KeyEvent event) 用于在按键进行释放时发生
onTouchEvent(MotionEvent event)触摸屏事件,当在触摸屏上有动作时发生
boolean onKeyLongPress(int keyCode, KeyEvent event)当长时间按时发生
XML布局文件(activity_main.xml):
Java代码(MainActivity.java):
运行程序后,界面会显示一个TextView和一个Button。当用户点击按钮时,会弹出一个Toast消息,并且TextView的文本内容会变为“Button Clicked!”。
遇到的问题及解决方法:
问题:点击按钮时,Toast消息没有显示。
解决方法:检查OnClickListener是否正确设置,并确保Toast.makeText的参数正确。
浙公网安备 33010602011771号