常用控件
控件是界面组成的主要元素
1.TextView 文本框(显示一些文本信息)
常用属性
android:text | 设置显示文本 |
---|---|
android:textColor | 设置文本颜色 |
android:textSize | 设置文字大小,推荐单位sp |
android:textStyle | 设置文字样式,如bold(粗体),italic(斜体),bolditalic(粗斜体) |
android:height | 设置文本区域高度,单位px、dp推荐sp、in、mm |
android:width | 设置文本区域宽度,单位px、dp推荐sp、in、mm |
android:maxLength | 设置文本长度,超出不显示 |
android:password | 设置文本以密码形式“.”显示 |
android:gravity | 设置文本位置 |
android:phoneNumber | 设置以电话号码的方式输入 |
android:layout_height | 设置TextView控件高度 |
android:layout_width | 设置TextView控件宽度 |
注意:
height、width和layout_height、layout_width属性的功能是相同的,用于设置控件的高,宽。只是layout前缀的属性通常是相对于父控件而言的,height、width属性是相对控件本身而言的。
(1)layout_height、layout_width属性可以单独使用;而height、width属性不能,如果单独使用控件不显示。
(2) layout_height、layout_width属性可以设置为wrap_content或者match_parent;而height、width属性只能是固定值,否则编译错误。
(3)如果使用height、width属性必须同时设置layout_height、layout_width属性,把height、width作为组件的微调使用
2.EditText 编译框(用于接收或提示用户输入信息)
EditText继承TextView
常用属性
android:hint | 显示提示信息 |
---|---|
android:lines | 设置固定行数来决定EditText高度 |
android:maxLines | 设置最大行数 |
android:minLines | 设置最小行数 |
android:password | 设置文本以密码形式显示 |
android:phoneNumber | 设置文本以电话号码方式输入 |
android:scrollHorizontally | 设置文本超出TextView宽度情况下,是否出现横拉条 |
android:capitalize | 设置首字母大写 |
android:editable | 设置是否可编辑 |
如:
android:maxLines=“2”//最大行数为2行,超过两行出现上下滚动效果,EditText
3.Button 按钮(响应用户点击事件)
常用属性
android:id | 为组件设置唯一标识 |
---|
如:
android:id=“@+id/标识名称” //设置id
常用点击方式3种:
布局指定onClick属性,使用匿名内部类,在当前Activity中实现OnClickListener接口
4.RadioButton 单选按钮
RadioButton单选按钮需要和RadioGroup单选组合框配合使用,提供两个或多个互斥的选项集;一个RadioGroup容纳多个RadioButton组合在一起实现单选状态,用android:orientation属性控制RadioButto排列方向。
特有属性
android:checked | 是否选择该按钮 |
---|
如:
android:checked=“true” //默认选中该按钮
5.ImageView 视图控件
继承View,功能在屏幕中显示图像。
常用属性
android:background | 设置背景 |
---|
如:
android:background=“@mipmap/图片名字”//设置图片背景
android:background=“#FF6600”//设置背景颜色
6.Dialog 普通对话框 (通常具有“确定”和“取消”按钮)
显示提示信息
常用方法
setTitle() | 设置对话框标题 |
---|---|
setlcon() | 设置对话框图标 |
setPositiveButton() | 设置对话框添加yes按钮 |
setNegativeButton() | 设置对话框添加no按钮 |
setMessage() | 设置对话框提示信息 |
7. 单选对话框
通过AlertDialog对象调用setSingleChoiceltems()方法创建的
//生成对话框
new AlertDialog.Builder(this) //当前对象
.setTitle(“请选择性别”) //设置标题
.setIcon(R.mipmap。ic_launcher) //设置图标
/* setSingleChiceItems ()方法设置3个参数,第一个参数建立数组,用于显示选项内容;第二个参数设置是否默认选中,“0”表示默认选中第一个选型,如果默认未选择,参数填-1;第三个参数设立监听,允许对话框被点击*/
.setSingleChiceItems(new String[]{“男”,”女”},0,new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
}})
.setPositiveButton(“确定”,null)
.show();
8. 多选对话框
调用setMultiChoiceltems()方法实现
//生成多选对话框
new AlertDialog.Builder(this) //当前对象
.setTitle(“请选择兴趣爱好”) //设置标题
.setIcon(R.mipmap。ic_launcher) //设置图标
/* setMultiChoiceltems ()有3个参数,第一个参数建立数组,用于显示选项内容;第二个参数是boolean数组,用来判断哪个选项需要勾选,没有就是null;第三个参数建立监听,允许对话框被点击。注意第二个参数,定义长度要对应第一个参数设置的选项*/
. setMultiChoiceltems(new String[]{“旅游”,“唱歌”“跳舞”},null,null)
.setPositiveButton(“确定”,null)
.show();
9.进度条对话框 ProgressDialog
圆形进度条和水平进度条两种
通过setProgressStyle()方法设置进度条样式
如:
progressdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL)//设置水平进度条
progressdialog.setProgressStyle(ProgressDialog.STYLE_SPINNER)//设置圆形进度条
10.消息对话框 Toast (提示作用,用在触发事件监听中)
Android系统提供的轻量级信息提醒机制,用于向用户提示即时消息,消息对话框 Toast显示在应用程序最上层,显示一会自动消失,不会打断当前操作
//创建Toast
/* makeText ()方法实例化一个ToastToast对象,该方法接收3个参数,第一个参数为当前类的内容对象,第二个参数为文本显示内容,第三个为Toast显示的时间,显示时间的长短是通过常量Toast。LENGTH_SHORT时间短和Toast_LENGTH_LONG时间短控制。注意:一定要调用show()方法,否则不会弹出*/
Toast.makeText(this,”hello,toast”,Toast.LENGTH_SHORT).show();
11.自定义对话框 Dialog
接下来用代码演示如何创建自定义对话框
创建自定义布局文件,名称my_dialog,需要设置对话框标题,内容以及确定和取消按钮
my_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MyDialog">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ffffff"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#0080FF"
android:gravity="center"
android:text="自定义对话框"
android:textColor="#ffffff"
android:textSize="18sp"
android:visibility="visible" />
<LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<TextView
android:id="@+id/tv_msg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:minHeight="100dp"
android:paddingBottom="15dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="15dp"
android:textColor="#ff6666"
android:textSize="16sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/btn_ok"
android:layout_width="114dp"
android:layout_height="40dp"
android:layout_marginLeft="20dp"
android:background="#FF8000"
android:gravity="center"
android:text="确定"
android:textColor="#ffffff"
android:textSize="15sp"/>
<Button
android:id="@+id/btn_cancel"
android:layout_width="114dp"
android:layout_height="40dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="#d0d0d0"
android:gravity="center"
android:text="取消"
android:textColor="#666666"
android:textSize="15sp"/>
</LinearLayout>
</LinearLayout>
</FrameLayout>
MyDialog.java
package com.example.dialog; //项目包名
import androidx.appcompat.app.AppCompatActivity;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
public class MyDialog extends Dialog {
private String dialogName;
private TextView tvMsg;
private Button btnOK,btnCancel;
public MyDialog(Context context, String dialogName){
super(context);
this.dialogName = dialogName;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); //去除标题
setContentView(R.layout.my__dialog); //引入自定义对话框布局
tvMsg = (TextView) findViewById(R.id.tv_msg);
btnOK = (Button) findViewById(R.id.btn_ok);
btnCancel = (Button)findViewById(R.id.btn_cancel);
tvMsg.setText(dialogName); //设置自定义对话框显示内容
//为“确定”按钮设置点击事件
btnOK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//点击“确定”按钮时的操作
}
});
//为“取消”按钮设置点击事件
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss(); //关闭当前对话框
}
});
}
}
使用自定义对话框
在MainActivity.java中调用MyDialog的构造方法就可以把自定义对话框显示出来
MainActivity.java
package com.example.dialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyDialog myDialog = new MyDialog(this ,"自定义对话框");
myDialog.show();
}
}
结果展示