您的位置:首页 > 产品设计 > UI/UE

学习笔记(三)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 中使用。

  要注意的是,添加自定义控件的时候,需要指明控件的完整类名,包名在这里不可以省略。

  

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 学习笔记