目录
[1. TextView 控件](#1. TextView 控件)
[7)android:layout_width 和 android:layout_height:](#7)android:layout_width 和 android:layout_height:)
[2. EditText 控件](#2. EditText 控件)
[5)android:lines 和 android:minLines:](#5)android:lines 和 android:minLines:)
[6)android:drawableLeft, ...Right, ...Top, ...Bottom:](#6)android:drawableLeft, ...Right, ...Top, ...Bottom:)
[3. Button 控件](#3. Button 控件)
[7)android:drawableLeft, ...Right, ...Top, ...Bottom:](#7)android:drawableLeft, ...Right, ...Top, ...Bottom:)
[4. ImageView 控件](#4. ImageView 控件)
[5. RadioButton 控件](#5. RadioButton 控件)
[6. CheckBox 控件](#6. CheckBox 控件)
1. TextView 控件
TextView
用于显示文本信息。
常用属性:
1)android:text
:
设置要显示的文本内容。
2)android:gravity
:
文本在**TextView
中的对齐方式**(如居中、靠左等)。
3)android:textSize
:
文本大小,单位可以是 sp 或 dp。
4)android:textColor
:
文本颜色。
5)android:background
:
设置背景颜色或图片。
6)android:padding
:
内边距。
7)android:layout_width
和 android:layout_height
:
宽度和高度设置。
8)android:maxLines
:
最大行数限制。
9)android:ellipsize
:
当文本超出 TextView
的宽度时,如何处理溢出文本(如使用省略号)。
案例:TextView的简单使用
1.代码
XML<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <!--定义一个TextView--> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:textSize="40sp" android:padding="30dp" android:background="#456789" android:textColor="#892777" android:gravity="center" android:textStyle="italic" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
2.效果
2. EditText 控件
EditText
是一种可编辑的文本框,继承自 TextView
。
常用属性:
1)android:hint
:
提示信息,当 EditText
为空时显示。
2)android:inputType
:
输入类型(如文本、数字、密码等)。
3)android:maxLength
:
允许的最大字符数。
4)android:password
:
是否显示为密码形式(星号或其他符号代替实际输入)。
5)android:lines
和 android:minLines
:
显示的行数。
6)android:drawableLeft
, ...Right
, ...Top
, ...Bottom
:
在文本框内添加图标。
案例:EditText控件的使用
1.代码
XML<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" > <!--hint属性--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#15C1F6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hint属性: " tools:ignore="MissingConstraints" /> <EditText android:id="@+id/et_input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:hint="输入控件内没有输入东西时显示" tools:ignore="MissingConstraints" /> </LinearLayout> <!--inputType属性--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#965DD7" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="inputType属性: " tools:ignore="MissingConstraints" /> <EditText android:id="@+id/et_input_two" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:hint="密码框" android:inputType="textPassword" tools:ignore="MissingConstraints" /> <EditText android:id="@+id/et_input_three" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:hint="电话号码" android:inputType="phone" tools:ignore="MissingConstraints" /> <EditText android:id="@+id/et_input_four" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:hint="网址" android:inputType="textUri" tools:ignore="MissingConstraints" /> <EditText android:id="@+id/et_input_five" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:hint="日期" android:inputType="date" tools:ignore="MissingConstraints" /> <EditText android:id="@+id/et_input_six" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:hint="时间" android:inputType="time" tools:ignore="MissingConstraints" /> </LinearLayout> <!--设置最大长度--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#EBC3D6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="password属性: " tools:ignore="MissingConstraints" /> <EditText android:id="@+id/et_inputa" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:inputType="textPassword" android:password="true" android:hint="maxLength属性为10" android:maxLength="10" tools:ignore="MissingConstraints" /> </LinearLayout> <!--添加图标--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#03A06F" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="password属性: " tools:ignore="MissingConstraints" /> <EditText android:id="@+id/et_inputb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:drawableStart="@drawable/ic_launcher_foreground" android:hint="添加图标" android:maxLength="10" tools:ignore="MissingConstraints" /> </LinearLayout> <!--显示行数--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#15C1F6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="password属性: " tools:ignore="MissingConstraints" /> <EditText android:id="@+id/et_inputd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:minLines="2" android:hint="显示行数" android:maxLength="10" tools:ignore="MissingConstraints" /> </LinearLayout> </LinearLayout>
2.效果
3. Button 控件
Button
用于触发事件。
常用属性:
1)android:text
:
按钮上显示的文字。
2)android:onClick
:
绑定到按钮点击事件的方法名。
3)android:background
:
背景样式。
4)android:enabled
:
按钮是否可用。
5)android:visibility
:
按钮的可见性。
6)android:padding
:
内边距。
7)android:drawableLeft
, ...Right
, ...Top
, ...Bottom
:
在按钮旁边添加图标。
案例:按钮控件的简单使用
随意找两种图片放在res == > drawable ==> 放置图片(图片命名英文开头,图片命名英文开头,图片命名英文开头)
1.代码
1布局文件代码
XML<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/boy" tools:context=".MainActivity"> <!--按钮--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击" android:id="@+id/btn" /> <!--为按钮设置背景图片--> <Button android:layout_width="256dp" android:layout_height="256dp" android:text="带背景图片的按钮" android:textColor="#6BF60B" android:id="@+id/btnImg" android:background="@drawable/girl" /> <!--被禁用的按钮--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="被禁用的按钮" android:enabled="false" android:background="#20DAF4" android:textColor="#5B20DB" /> <!--带内边距的按钮--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="带内边距的按钮" android:padding="20dp" android:background="#DAA4E0" android:textColor="#7140DB" android:id="@+id/btnPadding" /> </LinearLayout>
2.java代码
javapackage com.xiji.mycontain; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.util.Consumer; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); //获取显示类 Toast toast = Toast.makeText(this, "Hello World!", Toast.LENGTH_SHORT); /*获取控件*/ /** * 获取第一个控件 * */ View viewById = findViewById(R.id.btn); Button myButton = (Button) viewById; /** * 获取第二个控件 */ @SuppressLint({"MissingInflatedId", "LocalSuppress"}) Button myImgButton = findViewById(R.id.btnImg); /** * 获取第三个控件 */ @SuppressLint({"MissingInflatedId", "LocalSuppress"}) Button myTextButton = findViewById(R.id.btnPadding); //事件绑定 myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //点击时触发 toast.setText("普通按钮被点击了"); toast.show(); } }); myImgButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //点击时触发 toast.setText("图片按钮被点击了"); toast.show(); } }); myTextButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //点击时触发 toast.setText("带内边距的按钮被点击了"); toast.show(); } }); } }
2.效果
4. ImageView 控件
ImageView
用于显示图像。
常用属性:
1)android:src
:
设置要显示的图像资源。
2)android:scaleType
:
图像缩放类型(如 fitXY
, centerCrop
等)。
3)android:adjustViewBounds
:
是否根据图片调整视图边界。
4)android:contentDescription
:
为无障碍功能提供的描述文本。
案例:图片切换
1.代码
布局文件代码
XML<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!--使用帧布局--> <FrameLayout android:id="@+id/frame_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/img_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/girl" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击切换" android:id="@+id/btn_change" android:background="#457509" /> </FrameLayout> </LinearLayout>
2-java代码
javapackage com.xiji.myimgview; import android.os.Bundle; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; public class MainActivity extends AppCompatActivity { //定义点击事件按钮 private Button mBtn; //图片组件获取 private ImageView mImgView; //定义标志位 private boolean isShow = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); initView(); initListener(); } //控件初始化 private void initView() { mImgView = findViewById(R.id.img_view); mBtn = findViewById(R.id.btn_change); } //控件事件绑定 private void initListener() { mBtn.setOnClickListener(v -> { //点击事件 if (isShow == true) { mImgView.setImageResource(R.drawable.boy ); Toast.makeText(this, "我是小男孩", Toast.LENGTH_SHORT).show(); isShow = false; return; } mImgView.setImageResource(R.drawable.girl ); Toast.makeText(this, "我是小姑娘", Toast.LENGTH_SHORT).show(); isShow = true; }); } }
2.效果
5. RadioButton 控件
RadioButton
用于让用户从一组选项中选择一个。
常用属性:
1)android:checked
:
初始选中状态。
2)android:text
:
显示的文本。
3)android:button
:
设置单选按钮的外观。
4)android:gravity
:
文本对齐方式。
案例:RadioButton控件的简单使用
1.代码
1-java
javapackage com.xiji.myapplication123; import android.os.Bundle; import android.provider.MediaStore; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; public class MainActivity extends AppCompatActivity { private RadioGroup mRadioGroup; private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); initView(); initListener(); } //初始化 private void initView() { mRadioGroup = findViewById(R.id.radioGroup); //显示控件 mTextView = findViewById(R.id.textShow); } //绑定事件 private void initListener() { //radioGroup控件组 mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { //获取选中的radioButton RadioButton radioButton = findViewById(checkedId); //设置显示 mTextView.setText(radioButton.getText()); Toast.makeText(MainActivity.this,radioButton.getText(),Toast.LENGTH_SHORT).show(); } }); } }
2-xml
XML<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <RadioGroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/radioGroup"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:id="@+id/radioBoy" android:checked="true"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" android:id="@+id/radioGril"/> </RadioGroup> <!--线性布局--> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请选择性别:"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textShow" android:text="男"/> </LinearLayout> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
2.效果
6. CheckBox 控件
CheckBox
用于让用户选择一个或多个选项。
常用属性:
1)android:checked
:
初始选中状态。
2)android:text
:
显示的文本。
3)android:button
:
设置复选框的外观。
4)android:gravity
:
文本对齐方式。
案例:CheckBox的简单使用
1.代码
1-java
javapackage com.xiji.mycheckbox; import android.os.Bundle; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; public class MainActivity extends AppCompatActivity { //声明变量 private CheckBox checkBoxOne; private CheckBox checkBoxTwo; private CheckBox checkBoxThree; //展示 private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); initView(); initEvent(); } //控件初始化 private void initView() { checkBoxOne = findViewById(R.id.myCheckOne); checkBoxTwo = findViewById(R.id.myCheckTwo); checkBoxThree = findViewById(R.id.myCheckThree); textView = findViewById(R.id.myLikeShow); } //事件 private void initEvent() { checkBoxOne.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { String text = (String) checkBoxOne.getText(); if (b) { textView.setText(textView.getText()+text); return; } //如果没有选中那么就把文字去掉 textView.setText(textView.getText().toString().replace(text,"")); } }); checkBoxTwo.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { String text = (String) checkBoxTwo.getText(); if (b) { textView.setText(textView.getText()+text); return; } //如果没有选中那么就把文字去掉 textView.setText(textView.getText().toString().replace(text,"")); } }); checkBoxThree.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { String text = (String) checkBoxThree.getText(); if (b) { textView.setText(textView.getText()+text); return; } //如果没有选中那么就把文字去掉 textView.setText(textView.getText().toString().replace(text,"")); } }); } }
2-xml
XML<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" tools:ignore="MissingConstraints"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请选择你喜欢的游戏" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="流放之路" android:checked="true" android:id="@+id/myCheckOne" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="英雄联盟" android:id="@+id/myCheckTwo" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="星际战甲" android:id="@+id/myCheckThree" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="喜欢的游戏: " android:id="@+id/myLikeShow" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
2.效果
7.Toash类
Toast
用于显示简短的消息提示。
创建方法
javaToast.makeText(Context context, CharSequence text, int duration).show();
1)context
上下文环境。
2)text
显示的消息文本。
3)duration
显示时间长度,通常使用 Toast.LENGTH_SHORT
或 Toast.LENGTH_LONG
。