一. 常见的控件

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,horizontalandroid: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 中使用。
  要注意的是,添加自定义控件的时候,需要指明控件的完整类名,包名在这里不可以省略。
  
  

更多相关文章

  1. 三、安卓UI学习(1)
  2. android用户界面之按钮(Button)教程实例汇
  3. android ndk编译x264开源(用于android的ffmpeg中进行软编码)
  4. 在Fragment中设置控件点击方法,执行失败。
  5. TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
  6. Android(安卓)命令行编译、打包生成apk文件
  7. Android常用控件
  8. android用户界面-组件Widget-画廊视图Gallery
  9. 总目录

随机推荐

  1. android实战教程(一)
  2. Android实现读写JSON数据的方法
  3. Android 删除module
  4. android UiAutomator一个完整的个人信息
  5. Android(安卓)系统应用调用,intent的使用
  6. 比较好的android 开源项目
  7. android 简单服务实现
  8. android 下载图片保存在sdcard并显示可拖
  9. [Android]android.os 源代码中的Looper,H
  10. Android(安卓)-- 与WEB交互在同一个会话S