Android第三章 (UI)

3.1 常用控件使用方法
3.1.1 TextView
用途:主要用于在界面上显示一段文本信息
Android第三章 (UI)_第1张图片
在TextView中,
match_parent和fill_parent表示让当前控件的大小和父布局的大小一样
wrap_content表示让当前控件的大小能够刚好包含住里面的内容在这里插入图片描述
android:gravity表示指定文字的对齐方式
android:textSize表示指定文字的大小
android:textColor表示指定文字的颜色

3.1.2 Button
用途:表示在界面上显示一个按钮
Android第三章 (UI)_第2张图片
其中android:textAllCaps表示你的按钮名称大小写变化,true为默认,即大写情况;false则把按钮里的文字改为小写
在主活动中,有两种注册监听器的方法
法一(匿名类方式):
Android第三章 (UI)_第3张图片
法二:
Android第三章 (UI)_第4张图片
1、实现onClick。。。接口
2、重写onClick方法

3.1.3 EditText
用途:允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理
Android第三章 (UI)_第5张图片
android:hint 表示在输入框内显示一些提示性的文字,当用户输入任何内容时,这些提示性文字就会消失
android:maxLines表示制定Edit的最大行数为两行
Android第三章 (UI)_第6张图片
3.2.4 ImageView
用途:适用于在界面上展示图片的一个控件,他可以使得程序界面变得更加丰富多彩
做法:
在这里插入图片描述
Android第三章 (UI)_第7张图片
我们还可以通过点击按钮来更换图片
Android第三章 (UI)_第8张图片
3.2.5 ProgressBar
用途:用于在界面上显示一个进度条,表示我们的程序正在加载一些数据

3.2.6 AlertDialog
用途:可以在当前得界面弹出一个对话框,该对话框置顶于所有界面元素之上的,能够屏蔽掉其他控件得交互能力,因此AlertDialog一般都是用于提示一些非常重要的内容或着警告信息
Android第三章 (UI)_第9张图片
3.1.7 ProgressDialog
用途:跟ProgressDialog类似,弹出一个对话框,能够屏蔽掉其他控件得交互能力。不同的是,ProgressDialog会在对话框中显示一个进度条,一般用于表示当前操作比较耗时,让用户耐心地等待
3.2 详解4种基本布局
布局:一种可用于放置很多控件的容器,可以按照一定的规律调整内部控件的位置
3.2.1 线性布局
定义:该布局会将它所包含的控件在线性方向上依次排列,其代码都是在LinearLayout元素下实现的
1、其中,布局文件中的android:orientation属性指定了控件的排列方向,
若是vertical,则控件垂直方向排列;若为horizontal,则控件水平方向排列。
注意:如果声明为vertical,则内部控件的高度不能指定为match_parent;
如果声明为horizontal,则内部控件的宽度不能指定为match_parent;
Android第三章 (UI)_第10张图片
2、android:layout_gravity用于指定控件在布局中的对齐方式。若LinearLayout的排列方向为vertical时,只有水平方向上的对齐方式才会改变
若为horizontal时,只有垂直方向上的对齐方式才会改变
3、android:layout_weight允许我们使用比例的方式来制定控件的大小,注意此时控件的排列方向为horizontal
Android第三章 (UI)_第11张图片
我们发现此时layout_width都是用“0dp”表示,(其中dp是用于指定控件的大小、间距等属性的单位),这时我们的宽度是由layout_weight决定的。EditText和Button的layout_weight的值都为1,表明这两个控件在水平方向上平分宽度
此外,Button的代码还可以这么写:
Android第三章 (UI)_第12张图片
这表示Button控件的宽度仍为原来大小,而水平方向上剩余的空间会被EditText所填满
3.2.2 相对布局
定义:他可以通过相对定位的方式让控件出现在布局的任何位置,其代码都是在RelativeLayout元素下实现的
相对布局具有两种相对性:
1、相对于父布局定位,其中几个常见的属性:
android:alignParentRight:表示相对于父布局处在右边
android:alignParentLeft:表示相对于父布局处在左边
android:alignParentTop:表示相对于父布局处在上边
android:alignParentButton:表示相对于父布局处在下边
2、相对于控件定位,其中几种常见的属性:
android:layout_centerInParent:表示定义定位于中间位置的控件
android:layout_above="@id/button_3":表示定义定位相对于中间控件顶部的位置
android:layout_below="@id/button_3":表示定义定位相对于中间控件底部的位置
android:layout_toLeftOf="@id/button_3":表示定义定位相对于中间控件左边的位置
android:layout_toRightOf="@id/button_3":表示定义定位相对于中间控件右边的位置
3、补充:
android:layout_alignLeft:表示让一个控件的左边缘和另一个控件的左边缘对齐
android:layout_alignRight:表示让一个控件的右边缘和另一个控件的右边缘对齐
android:layout_alignLeft:表示让一个控件的顶部边缘和另一个控件的顶部边缘对齐
android:layout_alignLeft:表示让一个控件的底部边缘和另一个控件的底部边缘对齐
3.2.3 帧布局
定义:此布局没有方便的定位方式,所有的控件都会默认摆放在布局的左上角,其代码都是在FrameLayout元素下实现的
当然我们也可以通过android:layout_gravity对控件的对齐方式进行调整,以达到避免所有控件摆放在左上角的情况。向对于前两种布局,这种情况的布局使用较少
3.2.4 百分比布局
可以在RelativeLayout FrameLayout中允许直接指定控件在布局中的所占的百分比来实现效果,其代码分别是在PercentFrameLayoutPrecentRelativeLayout元素下实现的
1、首先我们要在build.gradle文件中添加百分比布局库的依赖Android第三章 (UI)_第13张图片
2、在布局文件中,在控件声明完后的结尾处定义一个app的命名空间,才能使百分比布局的自定义属性在这里插入图片描述
3.3 创建自定义控件
3.3.1 引入布局
a作用:我们可以只创建一个通用格式的布局,然后在其他的活动中调用此布局文件,这样就避免频繁的重复的操作控件
1、在layout包下创建一个布局文件,然后添加控件
2、在layout包下的主布局文件(或是你想调用的布局文件),就如下操作Android第三章 (UI)_第14张图片
在include中,引号里的格式:“@包名/布局文件名”
3、在主活动中,将系统自带的标题栏隐藏掉
Android第三章 (UI)_第15张图片
3.3.2 创建自定义控件
作用:以上述的自定义布局中的Back键为例,Back键的目的就是销毁该活动,我们可以通过自定义Back的控件,使得每一个自定义的布局中Back键执行的情况都是相同,这样就避免在每一个活动中都需要重新注册一遍返回按钮的点击事件。
1、新建一个类,继承LinearLayout,并重写其中的方法
Android第三章 (UI)_第16张图片
其中LayoutInflater的from()方法调用inflate方法以动态加载一个布局文件,传入的第一个参数就要加载的布局文件的id,第二个参数就是给加载好的布局再添加一个父布局
2、主活动布局文件中添加自定义控件代码:
Android第三章 (UI)_第17张图片
3、然后再在第一点的类中为按钮注册点击事件
3.4 ListView控件
作用:该控件允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚出屏幕
3.4.1 ListView 的简单用法
1、首先要把需要展示的数据提供好,这些数据既可以是从网上下载的,也可以是从数据库中读取的,这里我们采用data数组来测试Android第三章 (UI)_第18张图片
2、对于要展示数据,我们需要借用适配器来完成,这里采用ArrayAdapter适配器。先通过泛型指定要传入的数据的数据类型,然后在构造函数中依次传入当前上下文活动,我们使用android.R.layout.simple_list_item_1作为ListView子项布局的id,这是一个内置的布局文件,里面只有一个TextView,最后传入要传入的数据的数组名。
3、通过ListView创建一个对象,里面调用一个布局文件中ListView的标识号,然后通过setAdapter方法调用。
3.4.2 定制ListView的界面
1、首先准备好一组图片,分别对应好每一个数据
2、然后定义一个实体类,
3.4.3 提升ListView 的运行效率
3.4.4 ListVIew的点击事件

3.5 RecyclerView 滚动控件
RecyclerView控件是ListView的增强版,不仅可以轻松实现和ListView同样的效果,还优化了ListView中存在的不足之处

3.6 编写界面的最佳实践
3.6.1 制作Nine-Patch图片

你可能感兴趣的:(Android基础)