青江的个人站

“保持热爱,奔赴星海”

  • 主页
  • 目录
  • 图床
  • 留言板
  • -关于我-
友链 搜索文章 >>

青江的个人站

“保持热爱,奔赴星海”

  • 主页
  • 目录
  • 图床
  • 留言板
  • -关于我-

【Android学习笔记】二、UI组件


阅读数: 0次    2023-02-13
字数:1.8k字 | 预计阅读时长:6分钟

2.1 布局管理器

最常用的两个布局:

  • 线性布局(LinearLayout)
  • 相对布局(RelativeLayout)

2.1.1 LinearLayout

每一个Activity都需要在AndroidManifest中声明

控件中的最常用的属性:

  • android:id:布局或控件的一个标识,便于找到控件,布局本身就是一个控件
    • id命名使用@+id/(布局名),布局名尽量使用布局名的缩写,便于以后的查找
  • android:layout_width:宽度
  • android:layout_height:高度
    • wrap_content:根据内容设置宽度或高度
    • match_parent:与父布局的宽度或高度相同
    • 固定宽度或高度单位使用dp,字体大小单位使用sp
  • android:background:背景,可以为颜色,图片,或者一个自定义的.xml文件
  • android:layout_margin:外边距
    • 可以使用android:layout_marginTop等指定边距的位置
  • android:layout_padding:内边距
    • 可以使用android:layout_paddingTop等指定边距的位置
  • android:orientation:布局的方向
    • horizontal:水平布局
    • vertical:垂直布局

2.1.2 RelativeLayout

最常用属性:

  • android:layout_toLeftOf
    • 现在一般用android:layout_toStartOf代替
  • android:layout_toRightOf
    • 现在一般用android:layout_toEndOf代替
  • android:layout_alignBottom
  • android:layout_alignParentBottom
  • android:layout_below:用于指定当前的控件在某个控件的下面

2.2 TextView

  • 文字大小、颜色

    • android:textSize:设置文字字体大小,单位为sp
    • android:textColor:设置文字的颜色
    • android:gravity:控制元素在该控件里的显示位置
  • 无法显示完全时候

    • android:maxLines:设置最大的行数
    • android:ellipsize="end":设置当文字太多显示不下时候用...代替
  • 文字+icon

    • 使用app:drawableEndCompat在TextView中添加icon
    • 使用android:drawablePadding指定icon与文字的距离
  • 中划线,下划线

    • 通过Activity里的Java代码实现
    • 也可以通过HTML等方法去实现
  • 跑马灯

    • 需要添加的控件设置如下:

      1
      2
      3
      4
      5
      android:singleLine="true"
      android:ellipsize="marquee"
      android:marqueeRepeatLimit="marquee_forever"
      android:focusable="true"
      android:focusableInTouchMode="true"
    • 同时,需要在Activity中设置:

      1
      2
      TextView mTv_7 = findViewById(R.id.tv_6);
      mTv_7.setSelected(true);

2.3 Button

Button继承于TextView

加android:textAllCaps="false"可以设置按钮内的字母不是全部为大写

  • 文字大小、颜色
    • android:textSize:设置文字的大小
    • android:textColor:设置文字的颜色
  • 自定义背景颜色、形状
    • android:background:设置背景
    • 可以指定颜色实现纯色效果,或者指定.xlm文件来实现圆角,描边等效果
  • 自定义按压效果
    • 通过在背景中指定.xml文件来实现一些点击效果
  • 点击事件
    • 方法一(不常用):android:onClick:指定点击事件,内容为一个方法,此方法需要在Activity中写出
    • 方法二(常用):直接在Activity里为Button设置点击事件
    • 由于Button继承于TextView,因此也可以为TextView设置点击事件,也是在Activity中进行设置

2.4 EditText

EditText继承于TextView

  • 常用属性
    • android:hint:为输入框设置提示文本,当未输入内容时显示
    • android:textColorHint:设置输入框提示信息的颜色
    • android:text:设置的是默认输入的文字,可以被删掉
    • android:inputType:设置输入内容的类型,通常必须设置,防止出错
    • android:background:设置背景或线框形式
    • android:autofillHints:设置自动填充属性,常用属性可以设置为username、password等
    • android:drawableStart:为文本框开始的时候添加icon
    • android:drawablePadding:设置icon与文本的间距
  • 监听事件
    • 在Activity中设置监听
  • 制作登录界面

2.5 RadioButton

用于设置单选按钮,选择时候不能取消,可以使用RadioGroup来设置多个单选选项。

就像一道单选题,一个RadioGroup里可以放置多个RadioButton,选择时候只能选择其中一个。

默认情况下,不做选择时可以使所有选项没有一个被选择,但一旦做了选择,一个RadioGroup里有且只有一个被选择,可以更换选项,但是无法取消(除非退出重新进入)。

为避免没有一个被选中的情况,可以为其中某一个RadioButton设置android:checked为true,要设置这个属性,必须为每个RadioButton设置id。

  • 常用属性
    • RadioGroup里可以通过android:orientation设置水平排列(horizontal)或垂直排列(vertical)
  • 自定义样式
    • 先为每个RadioButton设置android:button="@null",将默认的圆圈样式去除
    • 通过android:background设置选择器样式,与Button中的选择类似
  • 监听事件
    • 可以在Activity中设置监听事件

2.6 CheckBox

复选框,实现复选功能,在一个组中可以选择多个,再次点击可以取消选择。

  • 常用属性
  • 自定义样式
    • 通过android:button设置选择器样式,引用一个drawable
    • 使用android:paddingStart设置自定义图标和文字的间距,需要注意的是,此处android:paddingStart需要和android:paddingEnd成对使用,否则会报警告,解决方法是添加android:paddingEnd="0dp",或添加tools:ignore="RtlSymmetry"。
  • 监听事件
    • 可以在Activity中设置监听事件

2.7 ImageView

  • Button的其他衍生控件:ToggleButton、Switch

  • 常用属性

    • android:src:设置控件中的图片源文件
    • android:scaleType:设置图片的拉伸和缩放
    • fitXY:撑满控件,宽高比可能发生变化
    • fitCenter:保持宽高比缩放,直至可以完全显示
    • centerCrop:保持宽高比缩放,直至完全覆盖控件,裁剪显示
  • 加载网络图片

    • 需要使用第三方库,不同的库之间会有一些差异,以”glide“为例,在build.gradle中通过添加如下代码导入第三方库:
    1
    2
    3
    dependencies {
    implementation 'com.github.bumptech.glide:glide:4.14.2'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.14.2'

    最新的项目编译依赖配置改到settings.gradle中了,则需要在settings.gradle中添加如下代码配置编译依赖,如果其中某些依赖已经存在的话可以忽略这一步。

    1
    2
    3
    repositories {
    google()
    mavenCentral()

    改变gradle构建代码后需要重新同步(Sync)项目。

    • 由于加载网络图片时需要使用网络,因此需要给app添加可以使用网络的权限,在AndroidManifest里添加:
    1
    <uses-permission android:name="android.permission.INTERNET" />

2.8 列表视图ListView

  • 常用属性
    • android:listSelector:设置点击效果,可以通过drawable来定制
    • android:divider:设置分割线的形式,也可以通过drawable来定制
    • android:dividerHeight:设置分割线的高度
  • Adapter接口
  • Demo演示

2.9 网格视图GridView

  • 常用属性
    • android:numColumns:设置网格的列数
    • android:horizontalSpacing:设置表格间的水平间距
    • android:verticalSpacing:设置表格间的垂直间距
  • Adapter接口
  • Demo演示

2.10 滚动视图ScrollView

  • 垂直滚动:ScrollView,子布局只能有一个
  • 水平滚动:HorizontalScrollView,子布局同样只能有一个

2.11.1 RecyclerView(一)

RecyclerView能够灵活实现大数据集的展示,视图的复用管理比ListView更好,能够显示列表、网格、瀑布流等形式,且不同的ViewHolder能够实现item多元化的功能。

但是使用起来会稍微麻烦一点,并且没有类似ListView的onItemClickListener监听事件,需要开发者自己实现。

2.11.2 RecyclerView(二)

……未完待续……

本文来源: 青江的个人站
本文链接: https://hanqingjiang.com/2023/02/13/230213_android_UiComponents/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
知识共享许可协议
赏

谢谢你请我喝可乐~

支付宝
微信
  • Notes
  • Android

扫一扫,分享到微信

微信分享二维码
2024新年快乐!
【Android学习笔记】一、Android初体验
  1. 1. 2.1 布局管理器
    1. 1.1. 2.1.1 LinearLayout
    2. 1.2. 2.1.2 RelativeLayout
  2. 2. 2.2 TextView
  3. 3. 2.3 Button
  4. 4. 2.4 EditText
  5. 5. 2.5 RadioButton
  6. 6. 2.6 CheckBox
  7. 7. 2.7 ImageView
  8. 8. 2.8 列表视图ListView
  9. 9. 2.9 网格视图GridView
  10. 10. 2.10 滚动视图ScrollView
  11. 11. 2.11.1 RecyclerView(一)
  12. 12. 2.11.2 RecyclerView(二)
© 2021-2025 青江的个人站
晋ICP备2024051277号-1
powered by Hexo & Yilia
  • 友链
  • 搜索文章 >>

tag:

  • 生日快乐🎂
  • 新年快乐!
  • 小技巧
  • Linux
  • 命令
  • 语录
  • 复刻
  • Blog
  • Notes
  • Android
  • C
  • FPGA
  • Homework
  • MATLAB
  • Server
  • Vivado

  • 引路人-稚晖
  • Bilibili-稚晖君
  • 超有趣讲师-Frank
  • Bilibili-Frank