Android常用控件基础知识

常用控件

控件是界面组成的主要元素

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[]{“男”,”女”}0new 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();
    }
}

结果展示
自定义对话框

发布了6 篇原创文章 · 获赞 7 · 访问量 2889

猜你喜欢

转载自blog.csdn.net/qq_45844792/article/details/105096190
今日推荐