zoukankan      html  css  js  c++  java
  • Android学习之基础知识五—Android常用的七大控件

    一、TextView控件:在界面上显示一段文本信息

     先看XML代码和执行效果:

       
       

    代码分析:

      1、android:id属性,给当前控件定义了一个唯一的标识符

      2、android:layout_width和android:layout_height,指定控件的宽度和高度。所有控件均具有这两个属性,可选值有三种:match_parent、fill_parent、wrap_content。其中match_parent与fill_parent意义相同,更推荐使用match_parent,match_parent表示当前控件的大小与父布局的大小一样,也就是由父布局来决定当前控件的大小。wrap_content表示当前控件的大小能够正好包含住里面的内容,也就是由控件内容来决定当前控件的大小。所有上面的代码表示TextView控件的宽度与父布局的宽度一样宽,也就是手机的屏幕,高度正好包含住里面的内容就行。

      3、android:gravity属性用来指定文字的对其方式,可选值有:top,bottom,left,right,center等等,可以使用 “|”来同时指定多个值,这里我们指定的center,效果等同于“center_vertical | center_horizontal”,表示文字在垂直和水平方向都居中对齐。

      4、android:textSize属性,指定文字的大小,使用sp作为单位

      5、android:textColor属性,指定文字的颜色。

     二、Button控件:用于和用户进行交互的重要控件

     Button控件很简单,直接看代码和效果:点击按钮,弹出一个信息:You Clicked the button!

    第一步:在XML文件中新加一个Button控件(关于最后程序运行后字母全部变大写的问题请查看随笔中的学习问题汇总笔记https://www.cnblogs.com/hh8888-log/p/9854952.html

    第二步:在MainActivity活动中给Button控件添加监听事件

      备注:如果不想使用匿名类的方式来注册监听事件,也可以通过使用实现接口的方法来注册监听

    第三步:运行程序,点击按钮,弹出一个提示信息:You Clicked the button!

     

     三、EditText控件:和Button控件一样,也是用于与用户交互的重要控件

      EditText控件允许用户在控件里面输入和编辑内容,并可以在程序中对这些内容进行处理。比如在发短信、发微信、QQ聊天等等。下面我们先来看代码和效果:

    代码分析:

      1、android:hint属性,指定一段提示性文本,告诉用户在该处需要输入什么类型的内容,当用户输入内容时,该提示文本会自动消失。

      2、android:maxLines属性,指定EditText的最大行数为两行

      3、android:maxLength属性,指定EditText中输入内容的最大长度,从上面实例中最多只能输入20个长度的内容

    拓展: 

    需求:通过点击按钮来获取EditText中输入的内容

    实现:在MainActivity活动中修改按钮的监听事件。获取EditText控件中输入的内容,调用getText()方法,然后再调用toString()方法转换为字符串保存。

    效果:点击按钮,弹出输入的信息。

    四、ImageView控件:在界面上显示图片

       在使用ImageView之前,需要提前把图片准备好,图片通常都放在以“drawable”开头的目录下。项目中有一个drawable目录,但是这个目录没有指定具体的分辨率,所以我们一般不使用它来放置图片。在res目录下,我们新建一个Directory,命名为drawable-xhdpi,在该目录下,我们放置两张图片,命名为img_1.jpg,img_2.jpg。

      图片资源准备好以后,我们开始写代码,下面是代码和效果:

      在ImageView控件中指定一张图片使用:android:src属性。为了图片能够完整的显示出来,我们将图片的宽度和高度都设置为“wrap_content”

    拓展:

    需求:通过点击按钮,切换图片

    实现:修改MainActivity活动中的按钮监听事件,通过使用ImageView控件的setImageResource()方法来指定需要切换成哪个图片

    效果:点击button按钮后,图片切换成了img_2.jpg

     五、ProgressBar控件:在界面上显示一个进度条,表示程序正在加载一些数据

    先看代码和效果:

    第一步:添加ProgressBar控件

    第二步:修改MainActivity活动中按钮的监听事件

     

    第三步:运行程序,没有点击按钮之前,我们可以看到一个圆形的进度条在不停的转动,点击按钮,进度条消失,再点击按钮,进度条又重新出现

        

    代码分析:

      1、Android控件的可见性属性是通过android:visibility属性进行指定的,所以控件均具有这个属性。

        可见性属性有三个可选值:visible、invisible、gone。

        visible:控件可见,这是默认值

        invisible:控件不可见,但是它仍然占据原来的位置和大小,可以理解为控件变为透明状态了

        gone:控件不可见,也不占据屏幕的任何空间。

      2、我们也可以通过代码来控制控件的控件属性,如上所示,在代码中我们使用ProgressBar控件的两个方法来操作可见性:

        setVisibility()方法:设置可见性

        getVisibility()方法:获取当前控件的可见性状态

        在方法中我们传入对应的三个值:

        View.VISIBLE:控件可见

        View.INVISIBLE:不可见,但占据位置和大小

        View.GONE:不可见,也不占据任何屏幕空间

     拓展:

     需求:将进度条设置为水平进度条,每点击一次按钮,进度条前进10

    第一步:设置进度条样式,并给进度条设置最大值为100

    第二步:在MainActivity活动中重新注册监听事件

    效果展示:每点击一下按钮,进度条前进10

    代码分析:

      1、设置进度条的样式:style="?android:attr/....."

      2、android:max属性是设置水平进度条的最大值

      3、进度条状态操作通过ProgressBar控件的getProgress()方法和setProgress()方法:

        getProgress():获取当前进度条状态

        setProgress():设置当前进度条状态

     六、AlertDialog控件:在当前界面弹出一个对话框

       AlertDialog控件置顶于所以界面元素之上,能够屏蔽掉其他控件的交互能力。它一般用于提示一些非常重要的内容或者警告信息,eg:防止用户误删重要内容,在删除前弹出一个确认对话框。下面我们先看代码和效果:

     1 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
     2     private EditText editText;
     3     private ImageView imageView;
     4     private ProgressBar progressBar;
     5     @Override
     6     protected void onCreate(Bundle savedInstanceState) {
     7         super.onCreate(savedInstanceState);
     8         setContentView(R.layout.activity_main);
     9         Button button=(Button)findViewById(R.id.first_button);
    10         editText=(EditText)findViewById(R.id.edit_text);
    11         imageView=(ImageView)findViewById(R.id.image_view);
    12         progressBar=(ProgressBar)findViewById(R.id.progress_bar);
    13         button.setOnClickListener(this);
    14     }
    15     @Override
    16     public void onClick(View v) {
    17         switch (v.getId()){
    18             case R.id.first_button:
    19                 AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
    20                 dialog.setTitle("This is Dialog");
    21                 dialog.setMessage("Something important.");
    22                 dialog.setCancelable(false);
    23                 dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    24                     @Override
    25                     public void onClick(DialogInterface dialog, int which) {
    26                         Toast.makeText(MainActivity.this,"You Clicked the OK",Toast.LENGTH_SHORT).show();
    27                     }
    28                 });
    29                 dialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
    30                     @Override
    31                     public void onClick(DialogInterface dialog, int which) {
    32                         Toast.makeText(MainActivity.this,"You Clicked the CANCEL",Toast.LENGTH_SHORT).show();
    33                     }
    34                 });
    35                 dialog.show();
    36                 break;
    37             default:
    38                 break;
    39         }
    40     }
    41 }

    效果:点击button按钮,弹出一个对话框,点击OK,弹出“You Clicked the OK”,点击CANCEL,弹出"You Clicked the CANCEL"

      

    代码分析:

      1、AlertDialog.Builder:创建一个AlertDialog实例

      2、setTitle()方法:设置标题

      3、setMessage()方法:设置内容

      4、setCancelable()方法:设置可否用Back键关闭对话框

      5、setPositiveButton()方法:设置对话框确定按钮的点击事件,该方法传入两个参数,一个是按钮名称,一个是点击按钮过后执行的操作。

      6、setNegativeButton()方法:设置对话框取消按钮的点击事件,该方法也传入两个参数,一个是按钮名称,一个是点击按钮过后执行的操作。

      7、show()方法:将对话框显示出来。

     七、ProgressDialog控件:与AlertDialog控件类似

      ProgressDialog控件与AlertDialog控件类似,它也是在界面上弹出一个对话框,但是在对话框中显示的是一个进度条,一般用于表示当前操作比较耗时,让用户耐心等待。ProgressDialog控件也有屏蔽其他控件的能力,ProgressDialog控件的用法与AlertDialog控件类似,下面是代码和效果:

    效果:点击button按钮,弹出有进度条的对话框,点击对话框以外的其他地方或者点击Back键,对话框消失

      

    代码分析:

       与AlertDialog控件类似,也是先创建一个实例“new ProgressDialog()”,然后设置对话框的标题、内容、可否通过Back键取消等,最后通过show()方法将对话框显示出来。

    注意事项:

      如果在setCancelable()方法中传入的是false,表示ProgressDialog是不能通过Back键取消掉的,也不能通过点击对话框以外的地方取消,这时就一定要在代码中做好控制,当数据加载完毕后必须要调用ProgressDialog控件的“dismiss()“方法来关闭对话框,否则对话框就会一直存在。

  • 相关阅读:
    Qt中实现启动画面(延时过程中要加上app.processEvents())
    Qt5中生成和使用静态库
    360云后台(使用HTTP Cache服务器)
    lucene 从2.4.0—3.6.0—4.3.1版本升级
    从C++到Qt(命令行编译,讲解原理)
    赵伟国的逻辑
    windows 7 系统进程服务详解
    QT 4.87 changes
    海量小文件存储
    最大连续子序列乘积
  • 原文地址:https://www.cnblogs.com/hh8888-log/p/9917970.html
Copyright © 2011-2022 走看看