Android UI布局与控件

Posted 胖子luffy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android UI布局与控件相关的知识,希望对你有一定的参考价值。

一、View类的常用xml属性:【了解】

①.android中所有的UI(用户界面)元素都是使用View和ViewGroup对象建立的
.View是一个可以将一些信息绘制在屏幕上并与用户产生交互的对象
③.ViewGroup是一个包含多个的View和ViewGroup的容器,用来定义UI布局。
④.Android提供了一系列的View和ViewGroup的子类,开发者可以灵活地组合使用它们来完成界面布 局、界 面元素绘制和用户交互等工作
⑤.开发者还可以选择性地继承一些系统提供的View,来自定义View,把自己定义的界面元素显示给用户。
   UI视图结构
      技术分享

(一)、类结构:

java.lang.Object
   ?  android.view.View

(二)、View及其子元素常用属性:(各种布局及控件的共同属性)
    1. android:id
    2. android:background 背景图或背景色
    3. android:onClick     为该控件的单击事件绑定监听器
    4. android:padding    设置控件四周的填充区域
    5. android:visibility    设置该控件是否可见
    6. android:alpha        设置该组件透明度
    7. android:layout_height      子组件的布局高度
    8. android:layout_width        子组件的布局宽度
    9. android:layout_margin     设置子组件的外边距
( 三 ).Android中UI布局的嵌套【掌握】
Android的UI开发使用层次模型来完成,一般都是在一个ViewGroup中嵌套多层ViewGroup,每一层中含有任意数目的View。

技术分享

注意:嵌套层次不要超过10层,否则会大幅降低运行效率,上图为3
二、Android UI控件:

(一)、控件名称:【标红色的为常用的】
    1. TextView        文本视图
    2. EditText         文本编辑框
    3. Button            按钮
    4. ImageView、Gallery   图像视图、画廊(建议过期)
    5. ImageButton    图片按钮
    6. ToggleButton 、Switch    开关按钮、开关
    7. RadioButton    单选按钮
    8. CheckBox       多选框
    9. Spinner           下拉列表
    10. AutoCompleteTextView   自动完成文本框
    11. ProgressBar    进度条
    12. SeekBar          拖动条
    13. RatingBar        星级评分条
    14. TimePicker、DatePicker   时间选择器、日期选择器
    15. AnalogClock、DigitalClock    模拟时钟、数字时钟
    16. Dialog(AlertDialogProgressDialog、TimePickerDialog、DatePickerDialog)提示对话框、进度对话框、时间选择对话框、日期选择对话框
    17. ListView、GridView        列表视图【最重要的UI组件】、 网格视图 
    18. ScrollView      滚动视图
    19. ExpandableListView   可展开列表视图
    20. WebView        网页视图
    21. SearchView    搜索框
    22. TabHost         书签选项卡
    23. Notification 、Toast         通知 、 吐司(短时提醒)    
    24. Menu(OptionMenu /SubMenu、ContextMenu)    菜单(选项菜单、上下文菜单)
    25. ImageSwitcher、TextSwitcher      图像切换器、文本切换器
    26. ActionBar        动作导航条
三、基本控件:——TextView【掌握】

(一)、TextView类结构:
java.lang.Object
   ? android.view.View
    ? android.widget.TextView

技术分享

(二)、TextView 常用属性:
1、andorid:text   设置文本的内容
2、 android:textColor      设置文本的颜色
3、 android:textSize         设置文本的字体大小(sp)
4、andorid:height            设置文本的高度,以像素为单位
5、 android:width             设置文本的宽度,以像素为单位
6、 android:inputType     设置文本的类型。例如是普通文本,还是email,password,数字等。
7、 android:singleLine      设置文本是否是单行显示。
8、android:gravity     设置文本框内文本的对齐方式。
     可选项有:top、bottom、left、right、center、fill、center_vertical、center_horizontal、  fill_horizontal等等。这些属性值也可以同时指定,各属性值之间用竖线隔开。例如right|bottom
9、android:drawableLeft    用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
10、android:drawableRight    用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
11、android:drawableTop    用于在文本框上侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
12、android:drawableBottom   用于在文本框下侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
13、android:autoLink   给指定的文本增加可单击的超链接。可选项为:none、web、email、phone、map和all。
14、android:hint    设置当文本框内文本内容为空时,默认显示的提示性文字。

( 三 ).TextView显示富文本:

// 将html的界面设置为TextView的内容

tv.setText(Html.fromHtml(sb.toString()));

// 使TextView内部的超链接可以响应用户的点击

tv.setMovementMethod(LinkMovementMethod.getInstance());


四、基本控件:——EditText【掌握】

(一)、 EditText 类结构:
java.lang.Object
   ? android.view.View
    ? android.widget.TextView
      ? android.widget.EditText

 所以 EditText 继承了TextView的所有属性。常用属性:
技术分享

(二)、android:inputType的可选项:
  1. android:inputType="textPersonName
  2. android:inputType="textPassword
  3. android:inputType="numberPassword
  4. android:inputType="textEmailAddress
  5. android:inputType="phone
  6. android:inputType="textPostalAddress
  7. android:inputType="time
  8. android:inputType="date
  9. android:inputType="number
(三)、EditText常用方法:
    1、setText ()
    2、getText ()

五、基本控件:——Button【掌握】

(一)、Button类结构:
java.lang.Object
   ? android.view.View
     ? android.widget.TextView
       ? android.widget.Button

 所以Button继承了TextView的所有属性。

六、Android事件处理的概述【掌握】
    (一)、概念:
        在Android中,我们可以通过事件处理使UI与用户互动(UI Events)。
具体形式则是以事件监听器(event listener)的方式來“监听”用户的动作。
        Android提供了非常良好的UI事件处理机制。View是绘制UI的类,每个View对象都可以向Android注册一个事件监听器。每个事件监听器都包含一个回调方法(callback method)这个回调方法(callback method)主要的工作就是回应或处理用户的操作。

    (二)、Android  UI事件处理的两套机制:
    1、基于监听和回调的事件处理机制(event listener):
       就是为Android中的控件绑定特定的事件监听器。一旦该控件监听到有相应的动作发生,则该动作会触发事件监听器,而该监听器会调用内部的回调方法做出相应的响应。事件监听器的核心就是它内部包含的回调方法。        
    2、另外一种UI事件的机制为事件处理器event handler
event handler与event listener是不一样的处理机制。后续课程中会讲到多线程的Handler、Looper消息传递机制。
(三)、Android种常用的事件监听器及其回调方法(callback method):
View.OnClickListener   :           onClick()                     单击事件
View.OnLongClickListener    :     onLongClick()            长按事件
View.OnFocusChangeListener :onFocusChange()     焦点改变事件
View.OnKeyListener          :          onKey()                      按键事件
View.OnTouchListener          :      onTouch()                  触摸屏事件
View.OnCreateContextMenuListener:  onCreateContextMenu()     创建上下文菜单事件
    【备注:】请同学们在这里增添新学到的事件监听类:
1、RadioGroup.OnCheckedChangeListener             单选按钮组的勾选项改变监听器
2、CompoundButton.OnCheckedChangeListener     多选框勾选项改变监听器
3、AdapterView.OnItemSelectedListener                  下拉列表框条目被选中监听器
4、AdapterView.OnItemClickListener                         ListView的条目单击监听器
5、AdapterView.OnItemClickListener                         GridView的条目单击监听器
6、DatePicker.OnDateChangedListener                     DatePicker的日期改变监听器
7、AbsListView.OnScrollListener                               ListView的滑动监听器

七、事件监听器的几种写法示例:
【备注:】其实事件监听器,就是实现了一个特定接口的Java类的实例。

监听器--->事件--->事件源
消防队--->着火--->房子

实现事件监听器有几种形式:
1、内部类形式;
2、外部类形式;
3、Activity实现监听器接口,自身作为事件监听器类;
4、匿名内部类的形式创建事件监听器,并实现监听器内的方法。
    (Android开发中常用匿名内部类作为监听器
以按钮的单击事件为例:
1.在xml文件里,设置onClick属性-->在代码中:添加相应的方法,必须带view参数;
2.匿名内部类的方式:
bt2.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) {
   Toast.makeText(getApplicationContext(), "2222被点击了", 0).show();
  }
 });
3.写一个内部类:
4.activity实现onClickListener接口:
bt4.setOnClickListener(this);
 @Override
 public void onClick(View v) {
  switch (v.getId()) {
  case R.id.btn_click4:
    Toast.makeText(getApplicationContext(), "444被点击了", 0).show();
   break;
  default:
   break;
  }
 }  
八、基本控件:——ImageView:
        (一).ImageView的类结构
java.lang.Object
    ? android.view.View
        ? android.widget.ImageView
    (二).ImageView的常用属性:
①、andorid:src  设置图片来源。属性值为android:src="@drawable/图片名称"
②、android:adjustViewBounds  用于设置 ImageView 是否调整自己的边界,来保持所显示图片的长宽比例。属性值为true或false
③、 android:maxHeight  设置 ImageView 的最大高度。需要先设置android:adjustViewBounds为true,否则不起作用。
④、andorid:maxWidth   设置 ImageView 的最大宽度。需要先设置android:adjustViewBounds为true,否则不起作用。
⑤、 android:scaleType   设置所显示的图片如何缩放或移动,以适应ImageView的大小。

设置所显示的图片如何缩放

















































以上是关于Android UI布局与控件的主要内容,如果未能解决你的问题,请参考以下文章

Android之UI View与ViewGroup

ANDROID UI布局学习

Android 开发 -- 开发第一个安卓程序Android UI开发(布局的创建:相对布局和线性布局控件单位:px pt dp sp常用控件 常见对话框ListView)

Android--UI布局

Android开发学习之路--UI之自定义布局和控件

Android13.0 UI开发——列表控件RecyclerView的横向布局排列实现