Android常用控件与布局

View的概念

  • Android 应用的绝大部分UI组件都放在android.widget包和android.view包中。
  • View是用户界面组件的共同父类,几乎所有的用户界面组件都是继承View类而实现的,如TextView、Button、EditText等。
  • 对View类及其子类的属性进行设置,可以在布局文件XML中设置,也可以通过成员方法在Java代码中动态设置。
  • 多个视图组件(View)可以存放在一个视图容器(ViewGroup)中,该容器可以与其他视图组件共同存放在另一个视图容器当中,但是一个界面文件必须有且仅有一个容器作为根节点。
  • Android应用的界面都是由View和ViewGroup对象构建的,ViewGroup继承了View类,也可以当做普通的View来使用,但主要还是当成容器来使用。
    在这里插入图片描述
    在这里插入图片描述

常用控件

TextView(文本框)

直接继承了View,它还是EditText和Button两个UI组件类的父类。TextView的作用是在界面上显示文字,通过在布局文件当中或者在Activity中修改文字的内容。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

EditText(输入框)

继承自TextView,因此共用了TextView的许多XML属性。
与TextView的最大区别:EditText能够接受用户的输入。
• 重要属性inputType,:用于将EditText设置为指定类型的输入组件, 如手机号、密码、日期等。
• 属性hint:提示用户当前文本框要输入的内容是什么。使用 android:hint=“”来提示用户,当用户点击文本框这些文字就会消失。
• 属性editable:设置是否可编辑,其值为“true”或“false”。
• 方法EditText(Context context):构造方法,创建文本编辑框对象。
• 方法getText():获取文本编辑框的文本内容。
• 方法setText(CharSequence text):设置文本编辑框的文本内容
在这里插入图片描述

Button (按钮)

按钮Button用于处理人机交互的事件,主要是在UI界面上生成一个按钮,用户可以点击按钮,并且能为按钮添加onClick事件即点击事件。
由于按钮Button是文本标签TextView的子类,按钮Button继承了文本标签TextView所有的方法和属性。

给按钮添加监听事件的方法

  1. 匿名内部类
    在定义的按钮对象的setOnClickLister方法中直接定义事件。

    •按钮Button在程序设计中最常用的方式是实现OnClickListener 监听接口,当单击按钮时,通过OnClickListener监听接口触发onClick()事件,实现用户需要的功能。
    • OnClickListener接口有一个onClick()方法,在按钮Button实现 OnClickListener接口时,一定要重写这个方法。
    • 按钮Button调用OnClickListener接口对象的方法如下:
    按钮对象.setOnClickListener(OnClickListener对象);

      loginButton  = (Button)findViewById(R.id.login_button);
      loginButton.setOnClickListener(new Button.OnClickListener(){
    	public void onClick(View v){
    		......
    		}
     });
    
  2. 内部定义
    与第1种方式略有区别,在loginButton 的setOnClickLister方法中使用listener,而listener是在后面的定义的OnClickListener类型的对象。

     loginButton.setOnClickListener(listener); 
     Button.OnClickListener listener = new Button.OnClickListener(){ 
    		public void onClick(View v){ 
     .... 
     }};
    
  3. 接口方式
    在类的声明中加入implements View.OnClickListener,然后使用loginButton.setOnClickListener(this)进行监听,最后定义onClick方法进行监听事件的处理。此种方法适合Activity中有多个控件需要监听的情景,根据传入的View的ID进行不同控件事件的监听。

    public class LoginActivity extends AppCompatActivity implements View.OnClickListener{ 
    	loginButton.setOnClickListener(this);
    	public void onClick(View v){
     		switch(v.getId()){ 
    		 case R.id.login_button: 
     	 		.....
      			break;
      }}}
    
    
  4. android:onClick
    直接在按钮的布局代码中添加onClick属性, 然后在Activity中定义相应方法即可。
    在这里插入图片描述

ImageView (图像视图)

ImageView是用于在界面上展示图片的一个控件,它可以让我们的程序界面变得更加丰富多彩。图片通常都是放在以“drawable”开头的目录下的。
常用属性和方法:android:src、android:background、setImageResource()方法
比较容易使用,前两个属性直接给imageview指定图片的位置就行了。这个方法里需要提供某个图片资源的ID,然后就能够在java代码中将一个图片指定给某个ImageView对象,可用于动态设置图片。

ProgressBar (进度条)

用于向用户显示某个耗时操作完成的百分比。进度条可以动态地显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应,从而带给用户更好的体验。在这里插入图片描述

SeekBar(拖动条)

SeekBar 是 ProgressBar 的子类,与进度条非常相似,只是进度条采用颜色填充来表示进度完成的程度,而拖动条则通过滑块的位置来标识数字。拖动条允许用户拖动滑块来改变值,因此拖动红条通常用于对系统的某种数值进行调节,比如音量调节。

AlerDialog (对话框)

AlerDialog可以在当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此,AlerDialog一般都是用于提示一些非常重要的内容或者警告信息。比如为了防止用户误删重要内容,在删除前弹出一个确认对话框。

常用布局

LinearLayout(线性布局)

线性布局LinearLayout将组件按照水平或垂直方向排列。在XML文件中,由根元素LinearLayout来标识线性布局。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
android:layout_weight 的使可以参考:博客

RelativeLayout(相对布局)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

FrameLayout(帧布局)

在这里插入图片描述

PecentaFrameLayout、PecentRelativeLayout(百分比布局)

百分比布局,允许直接指定控件在布局中所占的百分比。由于LinearLayout 本身已经支持按比例指定控件的大小了,因此百分比布局只为FrameLayout 和RealitiveLayout进行了功能扩展。
百分比布局属于新增布局,定义在了support库中,使用时需要在项目的build.gradle中添加百分比布局库的依赖。
打开app/build.gradle 在dependencies闭包中添加 compile ‘com.android.support:percent:24.2.1’
然后点击Sync now 将引入的库添加到项目中。
百分比布局不是内置在系统SDK中的,所以需要把完整包路径写出来,还必须定义一个app的命名空间,才能使用百分比布局的自定义属性。

<android.support.percent.PercentFrameLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:app="http://schemas.android.com/apk/res-auto">

使用时注意PercentFrameLayout 会继承FrameLayout的特性,控件的布局位置要注意调整。

控件与布局美化

Shape

在Android程序开发中,经常会去用到Shape去定义各种各样的形状,画出想要的背景,相对于图片来说,使用shape可以减少安装包的大小,而且能够更好地适配不同的手机。
shape可以画4种图形:矩形(rectangle)、椭圆(oval)、线(line)、圆环(ring)
5种效果:填充(solid)、渐变(gradient)、描边(stroke)、圆角(corners)、间隔(padding)
利用xml文件描述,作为一种资源,放于drawable目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Selector

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值