常用 View 的使用
1、TextView
TextView
用于在界面上显示文本信息。
属性
- text :设置显示的文本内容,例如
android:text="Hello, World!"
。 - textSize :设置文本大小,单位一般为
sp
(可缩放像素),如android:textSize="18sp"
。 - textColor :设置文本颜色,可以使用颜色值或颜色资源,如
android:textColor="#FF0000"
(红色)或android:textColor="@color/black"
。 - gravity :设置文本在
TextView
内的对齐方式,如center
(居中)、left
(居左)、right
(居右)、top
(居上)、bottom
(居下)等,可组合使用,例如android:gravity="center_vertical|center_horizontal"
表示垂直和水平方向都居中。 - maxLines :限制文本显示的最大行数,超出部分会被截断,例如
android:maxLines="2"
。
事件处理
TextView
一般较少直接处理事件,但可以通过设置 OnClickListener
来处理点击事件:
kotlin
css
val textView: TextView = findViewById(R.id.text_view)
textView.setOnClickListener {
// 处理点击事件的逻辑
}
2、Button
Button
是用户可点击的按钮,用于触发特定操作。
属性
- text :按钮上显示的文本,如
android:text="点击我"
。 - background :设置按钮的背景,可以是颜色、图片或形状资源。例如,设置背景颜色为蓝色:
android:background="#0000FF"
,或者设置为一个自定义的形状背景:android:background="@drawable/button_shape"
。 - enabled :设置按钮是否可用,
true
表示可用,false
表示不可用(按钮会变灰且无法点击),如android:enabled="true"
。
事件处理
主要处理点击事件,有以下几种方式:
通过匿名内部类:
kotlin
less
val button: Button = findViewById(R.id.button)
button.setOnClickListener {
// 按钮点击后的逻辑
}
通过实现 OnClickListener
接口:
kotlin
kotlin
class MainActivity : AppCompatActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button: Button = findViewById(R.id.button)
button.setOnClickListener(this)
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.button -> {
// 按钮点击后的逻辑
}
}
}
}
3、EditText
EditText
是允许用户输入文本的输入框。
属性
- hint :设置输入框为空时显示的提示文本,例如
android:hint="请输入用户名"
。 - inputType :指定输入的文本类型,如
text
(普通文本)、number
(数字)、textPassword
(密码,输入内容会以黑点显示)等。例如,设置为密码输入类型:android:inputType="textPassword"
。 - maxLength :限制输入文本的最大长度,如
android:maxLength="10"
。
事件处理
- 文本变化监听 :通过
TextWatcher
接口监听输入文本的变化:
kotlin
kotlin
val editText: EditText = findViewById(R.id.edit_text)
editText.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
// 文本变化前的操作
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
// 文本变化时的操作
}
override fun afterTextChanged(s: Editable?) {
// 文本变化后的操作
}
})
- 焦点变化监听 :通过
OnFocusChangeListener
监听输入框焦点的变化:
kotlin
rust
editText.setOnFocusChangeListener { v, hasFocus ->
if (hasFocus) {
// 获得焦点时的操作
} else {
// 失去焦点时的操作
}
}
4、ImageView
ImageView
用于在界面上显示图片。
属性
- src :设置要显示的图片资源,如
android:src="@drawable/ic_launcher"
。 - scaleType :设置图片的缩放类型,常见的有
centerCrop
(按比例缩放图片,使其完全覆盖ImageView
,可能会裁剪部分图片)、fitCenter
(按比例缩放图片,使其在ImageView
中居中显示,可能会有空白区域)、centerInside
(按比例缩放图片,使其完全显示在ImageView
内,图片不会被裁剪)等。例如,设置为centerCrop
:android:scaleType="centerCrop"
。
事件处理
与 TextView
类似,通常通过设置 OnClickListener
处理点击事件:
kotlin
css
val imageView: ImageView = findViewById(R.id.image_view)
imageView.setOnClickListener {
// 处理点击事件的逻辑
}
5、CheckBox(复选框)
-
常见属性:
- text :设置显示在
CheckBox
旁边的文本,例如android:text="记住密码"
。 - checked :设置
CheckBox
的初始选中状态,true
表示选中,false
表示未选中,如android:checked="false"
。 - buttonTint :设置
CheckBox
按钮的颜色,可使用颜色值或颜色资源,例如android:buttonTint="#FF0000"
(红色)。
- text :设置显示在
-
常见事件:
- 选中状态变化监听 :通过
CompoundButton.OnCheckedChangeListener
监听CheckBox
选中状态的改变。
- 选中状态变化监听 :通过
kotlin
kotlin
val checkBox: CheckBox = findViewById(R.id.check_box)
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
// CheckBox 被选中时的逻辑
} else {
// CheckBox 被取消选中时的逻辑
}
}
6、RadioButton(单选按钮)与 RadioGroup(单选按钮组)
-
RadioButton 常见属性:
- text :设置显示在
RadioButton
旁边的文本,如android:text="男"
。 - checked :设置
RadioButton
的初始选中状态,true
表示选中,false
表示未选中,例如android:checked="true"
。
- text :设置显示在
-
RadioGroup 常见属性:
- orientation :设置
RadioGroup
内RadioButton
的排列方向,取值为horizontal
(水平)或vertical
(垂直),例如android:orientation="horizontal"
。
- orientation :设置
-
常见事件:
- 单选按钮选中监听 :通过为
RadioGroup
设置OnCheckedChangeListener
来监听组内RadioButton
的选中状态变化。
- 单选按钮选中监听 :通过为
kotlin
rust
val radioGroup: RadioGroup = findViewById(R.id.radio_group)
radioGroup.setOnCheckedChangeListener { group, checkedId ->
when (checkedId) {
R.id.radio_button_male -> {
// "男" 单选按钮被选中时的逻辑
}
R.id.radio_button_female -> {
// "女" 单选按钮被选中时的逻辑
}
}
}
7、 Switch(开关按钮)
-
常见属性:
- textOn :设置开关打开时显示的文本,例如
android:textOn="开启"
。 - textOff :设置开关关闭时显示的文本,如
android:textOff="关闭"
。 - checked :设置开关的初始状态,
true
表示打开,false
表示关闭,例如android:checked="false"
。 - thumbTint :设置开关滑块的颜色,可使用颜色值或颜色资源,比如
android:thumbTint="#00FF00"
(绿色)。 - trackTint :设置开关轨道的颜色,同样可使用颜色值或颜色资源,例如
android:trackTint="#CCCCCC"
(灰色)。
- textOn :设置开关打开时显示的文本,例如
-
常见事件:
- 开关状态变化监听 :通过
CompoundButton.OnCheckedChangeListener
监听Switch
开关状态的改变。
- 开关状态变化监听 :通过
kotlin
kotlin
val switchButton: Switch = findViewById(R.id.switch_button)
switchButton.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
// 开关打开时的逻辑
} else {
// 开关关闭时的逻辑
}
}
8、 ProgressBar(进度条)
-
常见属性:
- max :设置进度条的最大值,例如
android:max="100"
。 - progress :设置进度条的当前进度值,如
android:progress="50"
。 - indeterminate :设置进度条是否为不确定模式(即显示旋转动画而不是具体进度),
true
表示是,false
表示否,例如android:indeterminate="false"
。 - style :设置进度条的样式,如水平进度条
?android:attr/progressBarStyleHorizontal
,圆形进度条?android:attr/progressBarStyleLarge
等。
- max :设置进度条的最大值,例如
-
常见事件:
- 进度更新监听:在代码中更新进度条进度时,可以根据进度值进行相应逻辑处理,例如:
kotlin
ini
val progressBar: ProgressBar = findViewById(R.id.progress_bar)
// 在某个操作过程中更新进度
for (i in 0..100) {
progressBar.progress = i
// 根据进度值执行相应逻辑
if (i == 50) {
// 进度达到 50% 时的逻辑
}
}
9、 SeekBar(拖动条)
-
常见属性:
- max :设置拖动条的最大值,例如
android:max="100"
。 - progress :设置拖动条的当前进度值,如
android:progress="50"
。 - thumb :设置拖动条滑块的样式,可使用自定义的图片资源,例如
android:thumb="@drawable/custom_thumb"
。
- max :设置拖动条的最大值,例如
-
常见事件:
- 拖动条进度变化监听 :通过
SeekBar.OnSeekBarChangeListener
监听拖动条进度的改变。
- 拖动条进度变化监听 :通过
kotlin
kotlin
val seekBar: SeekBar = findViewById(R.id.seek_bar)
seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
// 进度改变时的逻辑,progress 为当前进度值
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
// 开始拖动时的逻辑
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
// 停止拖动时的逻辑
}
})