常用 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 内,图片不会被裁剪)等。例如,设置为 centerCropandroid: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 :设置 RadioGroupRadioButton 的排列方向,取值为 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?) {
        // 停止拖动时的逻辑
    }
})
相关推荐
轻闲一号机34 分钟前
【机器学习】机器学习笔记
人工智能·笔记·机器学习
天下琴川1 小时前
Dify智能体平台源码二次开发笔记(5) - 多租户的SAAS版实现(2)
人工智能·笔记
AD钙奶-lalala2 小时前
某车企面试备忘
android
我爱拉臭臭3 小时前
kotlin音乐app之自定义点击缩放组件Shrink Layout
android·java·kotlin
workworkwork勤劳又勇敢3 小时前
Adversarial Attack对抗攻击--李宏毅机器学习笔记
人工智能·笔记·深度学习·机器学习
匹马夕阳4 小时前
(二十五)安卓开发一个完整的登录页面-支持密码登录和手机验证码登录
android·智能手机
吃饭了呀呀呀4 小时前
🐳 深度解析:Android 下拉选择控件优化方案——NiceSpinner 实践指南
android·java
寻丶幽风4 小时前
论文阅读笔记——Generating Long Sequences with Sparse Transformers
论文阅读·笔记·语言模型·transformer·稀疏自注意力
Angindem4 小时前
websoket 学习笔记
笔记·学习
吃饭了呀呀呀5 小时前
🐳 《Android》 安卓开发教程 - 三级地区联动
android·java·后端