常用 View 的使用

常用 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"(红色)。
  • 常见事件:

    • 选中状态变化监听 :通过 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"。
  • RadioGroup 常见属性:

    • orientation :设置 RadioGroup 内 RadioButton 的排列方向,取值为 horizontal(水平)或 vertical(垂直),例如 android:orientation="horizontal"。
  • 常见事件:

    • 单选按钮选中监听 :通过为 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"(灰色)。
  • 常见事件:

    • 开关状态变化监听 :通过 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 等。
  • 常见事件:

    • 进度更新监听:在代码中更新进度条进度时,可以根据进度值进行相应逻辑处理,例如:

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"。
  • 常见事件:

    • 拖动条进度变化监听 :通过 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?) {
        // 停止拖动时的逻辑
    }
})
相关推荐
sbjdhjd1 小时前
AI产业周度动态:从“更强模型”走向“可执行、可治理、可计价”的系统竞争 (2026年10月19日—10月25日)
人工智能·笔记·ai·开源·gemini·信息差·claude code
且随疾风前行.1 小时前
Paint Cavans高级绘制:[一]Paint画笔高级应用
android·ui
ss2732 小时前
AI时代首先数据库-PostgreSQL实战笔记 27 PostgreSQL数据写入与读取流程解析
数据库·笔记·postgresql
深圳老胡3 小时前
压力检测空吸功能硬件方案全解析:主流压力传感器品牌与实现路径
笔记·单片机·代码规范
程序猿追3 小时前
返回 null 不一定入队成功:鸿蒙 KMP上的并发优先队列观察笔记
笔记·华为·harmonyos·kmp
郑州光合科技余经理3 小时前
同城小程序开发:同一笔单在用户端和商家端各显示到哪
android·java·开发语言·前端·后端·uni-app·php
崔高杰4 小时前
【多论文阅读笔记】下一阶段,Agent记忆关注什么能力?
论文阅读·笔记
ms72wx4 小时前
Docker 命令学习笔记:从入门到进阶的实战指南
笔记·学习·docker
pigdreams4 小时前
Google 官方 Android CLI:让AI直接读布局结构而不是用adb截图验证
android·人工智能·adb
NoteDeep 深度笔记5 小时前
排期看不出冲突?把任务表切成甘特图
笔记·个人开发·甘特图·笔记应用·深度笔记·云笔记