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:防止用户误删重要内容,在删除前弹出一个确认对话框。下面我们先看代码和效果:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText editText;
private ImageView imageView;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.first_button);
editText=(EditText)findViewById(R.id.edit_text);
imageView=(ImageView)findViewById(R.id.image_view);
progressBar=(ProgressBar)findViewById(R.id.progress_bar);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.first_button:
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();
break;
default:
break;
}
}
}
效果:点击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()“方法来关闭对话框,否则对话框就会一直存在。
Android学习之基础知识五—Android常用的七大控件的更多相关文章
- Android学习之基础知识五—ListView控件(最常用和最难用的控件)
ListView控件允许用户通过上下滑动来将屏幕外的数据拉到屏幕内,把屏幕内的数据拉到屏幕外. 一.ListView的简单用法第一步:先创建一个ListViewTest项目,在activity_mia ...
- Android学习之基础知识五—创建自定义控件
下面是控件和布局的继承关系: 从上面我们看到: 1.所有控件都是直接或间接继承View,所有的布局都是直接或间接继承ViewGroup 2.View是Android中最基本的UI组件,各种组件其实就是 ...
- Android学习之基础知识五—RecyclerView(滚动控件)
RecyclerView可以说是增强版的ListView,不仅具有ListVIew的效果,还弥补许多ListView的不足. 一.RecyclerView的基本用法 与百分比布局类似,Recycler ...
- Android学习之基础知识六—Android四种布局详解
一.Android基本布局 布局是一种可以放置多个控件的容器,它可以按照一定规律调整内部控件的位置,而且布局内部除了可以放置控件外,还可以放置布局,实现多层布局嵌套.布局和控件.布局和布局之间的关系如 ...
- Android学习之基础知识五—编写聊天界面
第一步:在app/build.grandle添加RecyclerView依赖库 第二步:在activity_main.xml文件中编写主界面:聊天.发送框.发送按钮三个部分 第三步:编写Message ...
- Android学习之基础知识八—Android广播机制
一.广播机制简介 Android提供了一套完整的API,允许应用程序自由的发送和接受广播,发送广播借助于我们之前学过的:Intent,而接收广播需要借助于广播接收器(Broadcast Receive ...
- Android学习之基础知识八—Android广播机制实践(实现强制下线功能)
强制下线功能算是比较常见的了,很多的应用程序都具备这个功能,比如你的QQ号在别处登录了,就会将你强制挤下线.实现强制下线功能的思路比较简单,只需要在界面上弹出一个对话框,让用户无法进行任何操作,必须要 ...
- Android学习之基础知识七—碎片的最佳实践
一.Android碎片(Fragment)的最佳实践——简易版新闻应用 第一步:新建FragmentBestPractice项目,在app/build.gradle当中添加:RecyclerView ...
- Android学习之基础知识十五 — 最佳UI体验(Material Design实战)
一.前言 长久以来,大多数人都认为Android系统的UI并不美观,至少没有iOS系统的美观.以至于很多IT公司在进行应用界面设计的时候,为了保证双平台的统一性,强制要求Android端的界面风格必须 ...
随机推荐
- Linux Shell脚本编程while语句案例
1,每隔3秒,打印一次系统负载 #!/bin/bash while true do uptime done 2,把监控结果保存到文件,在后台执行,然后用tail -f监控文件变化 ghostwu@de ...
- blfs(systemd版本)学习笔记-安装lrzsz软件包实现ssh远程传输文件到lfs系统
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 安装lrzsz软件包实现ssh远程传输文件到lfs系统 这个软件包在lfs系列的书中没有,这里是参照lrzsz官网的说明进行编译 ...
- POJ 1113 Wall(思维 计算几何 数学)
题意 题目链接 给出平面上n个点的坐标.你需要建一个围墙,把所有的点围在里面,且围墙距所有点的距离不小于l.求围墙的最小长度. \(n \leqslant 10^5\) Sol 首先考虑如果没有l的限 ...
- Ubuntu 中卸载软件的几种命令
1.在终端里 apt-get安装的软件:安装软件sudo apt-get install softname1 softname2softname3--卸载软件 sudo apt-get remove ...
- Mobile first! Wijmo 5 + Ionic Framework之:费用跟踪 App
费用跟踪应用采用了Wijmo5和Ionic Framework创建,目的是构建一个hybird app. 我们基于<Mobile first! Wijmo 5 + Ionic Framework ...
- Java并发编程--总结
1.并发优势 2.并发安全性 3.并发优化 4.并发内存模型 https://pan.baidu.com/s/1J4S2tC7YDgdOwtAg1970sg
- Android View体系(八)从源码解析View的layout和draw流程
前言 上一篇文章我们讲了View的measure的流程,接下来我们讲下View的layout和draw流程,如果你理解了View的measure的流程,那这篇文章自然就不在话下了. 1.View的la ...
- [20180806]tune2fs调整保留块百分比.txt
[20180806]tune2fs调整保留块百分比.txt --//生产系统一台dg磁盘空间满了.我前一阵子已经将*convert参数修改,增加磁盘,但是这个分区里面的数据文件还可以增长,这样依旧存- ...
- [20171031]markhot.txt
[20171031]markhot.txt --//昨天看了https://jonathanlewis.wordpress.com/2017/10/02/markhot/,测试看看这样时候可以减少争用 ...
- java基础-温故而知新(02)
基本数据的自动拆装箱及享元设计模式 1.1 自动装箱 -128~127 之间的整数,装在一个内存区域. 超过这个范围的整数,装在不同的内存区域. 1.2 自动拆箱 ...