学习笔记(三)UI开发之一
2016-04-18 21:10
239 查看
一. 常见的控件
1. TextView
TextView 是 Android 中最简单的一个控件,它主要用于在界面上显示一段文本信息。TextView 中的文字默认是居左上角对齐的。android:gravity= //指定文字在控件中的对齐方式 android:layout_gravity= //指定控件在布局中的对齐方式
2. Button
Button 是程序用于和用户进行交互的一个重要控件,它可配置的属性和 TextView 是差不多的。以下是在活动中为 Button 的点击事件注册一个监听器(以匿名类的方式):Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener(){ @override public void onClick(View v){ //在此处添加逻辑 } });
3. EditView
EditView 是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。android:hint= //指定一段提示性文本 android:maxLines= //指定最大行数
4. ImageView
ImageView 是用于在界面上展示图片的一个控件。在 drawable 文件夹下存放图片。5. ProgressBar
ProgressBar 用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。一般用的是圆形进度条和水平进度条。android:visibility= //指定控件的可见属性,可选值 visible,invisible,gone android:max= //指定水平进度条的最大值
除此之外还可以通过
setVisibility()方法,可以传入
View.VISIBLE
View.INVISIBLE
View.GONE三种值。
6. AlertDialog
AlertDialog 用于提示一些非常重要的内容或者警告信息。比如确认删除对话框。7. ProgressDialog
ProgressDialog 和 AlertDialog 类似,都可以在界面上弹出对话框。不同的是 ProgressDialog 会在对话框中显示一个进度条,一般是用于表示当前操作比较耗时需要用户耐心等待。进度加载完成之后,必须使用dismiss()来关闭对话框。
二. 基本布局
1. LinearLayout
LinearLayout 称作线性布局,能把控件水平排列或者垂直排列。android:orientation= //指定排列方向,vertical,horizontal android:layout_gravity= //指定控件在布局中的对齐方式 android:layout_weight= //按比例分配控件大小
2. RelativeLayout
RelativeLayout 称作相对布局,也是一种非常常用的布局,它可以通过相对定位的方式让控件出现在布局的任何位置。3. FrameLayout
FrameLayout 称作框架布局,相比于前面两种布局简单很多,因此它的应用场景也少了很多。这种布局没有任何的定位方式,所有的控件都会摆放在布局的左上角。4. TableLayout
TableLayout 称作表格布局,它也是不常用。在 TableLayout 中每加入一个 TableRow 就表示在表格中添加了一行。然后在 TableRow 中每加入一个控件就表示在该行中加入了一列。在 TableRow 中无法指定控件的宽度,通过android:stretchColumns="1",指定将第二列拉伸到最大。
三. 创建自定义控件
我们使用的各种控件其实就是在 View 的基础上又添加了各自特有的功能,换句话说,我们自己也能够利用上面的继承结构来自定义控件。ViewGroup 是一种特殊的 View,是一个用于放置控件和布局的容器。
1. 自定义标题栏(无响应操作)
-> 新建一个布局 title.xml;-> 在 activity_main.xml 上通过
<inclue layout="@layout/title"/>代码引入布局;
-> 最后隐藏原本的标题栏。
但是我自己在学习过程中发现:在 Android Studio 2.0 版本中,新创建的空白 MainActivity 是默认继承 AppCompatActivity 的,书中说的在
onCreate()方法加上
requestWindowFeature(Window.FEATURE_NO_TITLE);,以此来隐藏标题栏并不起作用。如果要用这个方法的话,那么就让 MainActivity 继承 Activity。另外还可以修改 AndroidManifest.xml 中
android:theme属性,选择有 “NoActionBar” 字段的属性,这样就能隐藏原本的标题栏了。
2. 自定义控件
上面方法自定义的标题栏并不能响应操作,其实标题栏不管放在那里,这些按钮的功能都是一样的,为了减少重复的代码,我们使用自定义的控件来解决这个问题。(1)新建 title.xml 布局文件,设置好布局;
(2)然后,创建一个自定义标题控件;
-> 重写 LinearLayout 中带有两个参数的构造函数;
-> 利用 LayoutInflater 动态加载标题栏控件(这时候就是一个有功能的控件,想用在哪就放在哪);
-> 再为标题栏中的按钮注册点击事件(寻找控件 id -> 设置监听器 -> 重写
onCreate()来定义要执行的动作);
-> 最后添加到 activity_main.xml 中使用。
要注意的是,添加自定义控件的时候,需要指明控件的完整类名,包名在这里不可以省略。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories