Android UI控件详细解析(四)

1.UI控件

1.1 TextView控件

常用属性
属性含义
id给当前控件定义了一个唯 一标识符
layout_width高度,单位:dp (wrap_content, match_parent)
layout_height宽度,单位:dp (wrap_content, match_parent)
background设置背景图片
text指定控件中显示的文本内容
gravity来指定文字的对齐方式(top 、bottom 、left 、right 、center)
textSize指定控件中文字的大小
textColor指定控件中文字的颜色(#000000~#FFFFFF)
textStyle指定控件中文字的样式
带阴影的TextView)(Drawable资源文件使用)
属性含义
shadowColor设置阴影颜色,需要与shadowRadius一起使用
shadowRadius设置阴影的模糊程度,设为0.1就变成字体颜色(建议为3.0)
shadowDx设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置
shadowDy设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置
带边框的TextView(Drawable资源文件使用)

通过设置边框的Drawable文件,然后通过TextView的background调用来实现有边框的调用

<!--示例说明-->
<TextViewandroid:background="@drawable/txt_rectborder"/>
带图片的TextView(Drawable资源文件使用)

设置图片的核心其实就是Drawable资源文件,它可以设置四个方向的图片: drawableTop(上)、drawableButtom(下)、drawableLeft(左)、drawableRight(右) 另外,你也可以使用drawablePadding来设置图片与文字间的间距!

1.2 EditText控件

常用属性
属性含义
hint默认提示文本
textColor设置文本颜色(#000000~#FFFFFF)
height设置控件高度
width设置控件宽度
textStyle设置字体样式(粗体、斜体)
selectAllOnFocus获取焦点后全选组件内所有文本内容
限制EditText输入类型
属性含义
inputTypephone(拨号键盘)date(日期键盘)time(时间键盘)
设置最小行、最多行、单行、多行、自动换行
属性含义
singleLine设置只允许单行输入,而且不会滚动
minLines设置最小行数
maxLines设置最大行数
textScaleX设置字与字的水平间隔
textScaleY设置字与字的垂直间隔
capitalize设置英文字母大写(sentences【第一个字母大写】、word【每一个单词首字母大写,以空格区分单词】、characters【每一个英文字母都大写】)
设置内边距
属性含义
marginTop上边距
marginBottom下边距
marginRight右边距
marginLeft左边距

1.3 Button按钮与ImageView图像按钮

常用属性
属性描述
drawable放一个drawable资源
drawableTop可拉伸要绘制的文本的上面
drawableBottom可拉伸要绘制的文本的下面
drawableLeft可拉伸要绘制的文本的左面
drawableRight可拉伸要绘制的文本的右面
text设置显示文本
textColor设置显示文本颜色
textSize设置显示文本大小
background可拉伸使用的背景
onclick设置点击事件(不常用)
Button的状态属性
属性描述
stated_pressed是否按下,如一个按钮触摸或者点击
state_focused是否取得焦点,比如用户选择了一个文本框
state_hovered光标是否悬停,通常与focused state相同
state_selected被选中状态
state_checkable组件是否能被check。如:RadioButton是可以被check的
state_checked被checked了,如:一个RadioButton可以被check了的
state_enabled能够接受触摸或者点击事件
state_activated被激活
state_window_focused应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了

1.4 ImageView控件的src属性和background属性的区别

  1. background通常指的都是背景,而src指的是内容!!
  2. 当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸;使用background填入图片,则是会根据ImageView给的值进行拉伸。

1.5 RadioButton控件(单选按钮)和CheckBox控件(多选按钮)

示例说明
<RadioGroupandroid:id="@+id/radioGroup"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><RadioButtonandroid:id="@+id/btnMan"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""android:checked="true"/><RadioButtonandroid:id="@+id/btnWoman"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""/>
</RadioGroup><CheckBoxandroid:id="@+id/cb_one"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="香蕉"/>
<CheckBoxandroid:id="@+id/cb_two"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="苹果"/>
<CheckBoxandroid:id="@+id/cb_three"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="菠萝"/>

1.6 ToggleButton控件(开关按钮)Switch控件(开关)

ToggleButton常用属性
属性描述
disabledAlpha设置按钮在禁用时的透明度
textOff按钮没有被选中时显示的文字
textOn按钮被选中时显示的文字
Switch常用属性
属性描述
showText设置on/off的时候是否显示文字(true / false)
splitTrack是否设置一个间隙,让滑块与底部图片分隔(true / false)
switchMinWidth设置开关的最小宽度
switchPadding设置滑块内文字的间隔
switchTextAppearance设置开关的文字外观(用得少)
textOff按钮没有被选中时显示的文字
textOn按钮被选中时显示的文字
textStyle文字风格,粗体,斜体写划线那些
track底部的图片
thumb滑块的图片
typeface设置字体(sans, serif, monospace)
自定义字体文件:
1. 将字体文件保存在assets/fonts/目录下
2. 在Java代码中设置: Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf"); textView.setTypeface(typeFace);
示例说明
<ToggleButtonandroid:id="@+id/tbtn_open"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:textOff="关闭声音"android:textOn="打开声音" /><Switchandroid:id="@+id/swh_status"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textOff=""android:textOn=""android:thumb="@drawable/thumb_selctor"android:track="@drawable/track_selctor" />

1.7 ProgressBar控件

基本用法
属性描述
max进度条最大值
style设置进度条的样式:环形或者水平进度条(Horizontal)
progress进度条已完成进度值
progressDrawable设置轨道对应的Drawable对象
indeterminate如果设置成true,则进度条不精确显示进度
indeterminateDrawable设置不显示进度的进度条的Drawable对象
indeterminateDuration设置不精确显示进度的持续时间
secondaryProgress二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置

1.8 SeekBar控件

基本用法
属性描述
max滑动条的最大值
progress滑动条的当前值
secondaryProgress二级滑动条的进度
thumb滑块的drawable

1.9 RatingBar控件

基本用法
属性描述
isIndicator是否用作指示,用户无法更改,默认false
numStars显示多少个星星,必须为整数
rating默认评分值,必须为浮点数
stepSize评分每次增加的值,必须为浮点数
style样式选择

2. 布局

Android中有六大布局,分别是:LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout(表格布局) FrameLayout(帧布局),AbsoluteLayout(绝对布局),GridLayout(网格布局)

2.1 线性布局管理(LinearLayout)

属性含义
layout_height高度,单位:dp (wrap_content, match_parent)
layout_weight宽度,单位:dp (wrap_content, match_parent)
orietation方向(vertical,horizontal)
gravity对齐方式(left, right, center, top, bottom…)
background背景(颜色[color]、图片[drawable]、选择器[selector])
padding内边距 (paddingLeft, paddingRight, paddingTop, paddingBottom)
margin外边距 (marginLeft, marginRight, marginTop, marginBottom)
layout_gravity本元素相对于父元素的重力方向
orientation本元素所有子元素的重力方向

权重

属性含义
weight比重

分割线

属性含义
divider为LinearLayout设置分割线图片
showDividers设置分割线所在位置
dividerPadding设置分割线的Padding

2.2 相对布局管理(RelativeLayout)

基本属性

属性描述
gravity设置让其内组件的对齐方式
ignoreGravity设置了该属性为true的属性的组件,将不受gravity属性的影响

根据父容器定位

属性描述
layout_alignParentLeft左对齐
layout_alignParentRight右对齐
layout_alignParentTop顶部对齐
layout_alignParentBottom底部对齐
layout_centerHorizontal水平居中
layout_centerVertical垂直居中
layout_centerInParent中间位置

根据兄弟组件定位

属性描述
layout_toLeftOf参考组件的左边
layout_toRightOf参考组件的右边
layout_above参考组件的上方
layout_below参考组件的下方
layout_alignTop对其参考组件的上边界
layout_alignBottom对其参考组件的下边界
layout_alignLeft对其参考组件的左边界
layout_alignRight对其参考组件的右边界

偏移量(设置组件与父容器的边距)

属性描述
layout_margin设置组件爱你上下左右的偏移量
layout_marginLeft设置组件离左边的偏移量
layout_marginRight设置组件离右边的偏移量
layout_marginTop设置组件离上面的偏移量
layout_marginBottom设置组件离下面的偏移量

填充(设置组件中内部元素间的边距)

属性描述
padding往内部元素的上下左右填充一定的边距
paddingLeft往内部元素的左边填充一定的边距
paddingRight往内部元素的右边填充一定的边距
paddingTop往内部元素的上面填充一定的边距
paddingBottom往内部元素的下面填充一定的边距

2.3 表格布局管理(TableLayout)

常用属性

属性描述
collapseColumns设置需要被隐藏的列的序列号
shrinkColumns设置允许被收缩的列的列序号
stretchColumns设置运行被拉伸的列的列序号

示例说明

隐藏列

<TableLayout  android:id="@+id/TableLayout2"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:collapseColumns="0,2" >  <TableRow>  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="one" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="two" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="three" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="four" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="five" />  </TableRow>  
</TableLayout>

拉伸列

<TableLayout    android:id="@+id/TableLayout2"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:stretchColumns="1" >    <TableRow>    <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="one" />    <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="two" />    <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="three" />    <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="four" />                 </TableRow>    
</TableLayout>  

收缩列

<TableLayout  android:id="@+id/TableLayout2"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:shrinkColumns="1" >  <TableRow>  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="one" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="two" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="three" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="four" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="five" />  <TextView  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="文本XX" />  </TableRow>  
</TableLayout>

2.4 帧布局管理(FrameLayout)

常用属性

属性描述
foreground设置改帧布局容器的前景图像
foregroundGravity设置前景图像显示的位置
// 简单的帧布局使用
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/FrameLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity"     android:foreground="@drawable/logo"    android:foregroundGravity="right|bottom">    <TextView    android:layout_width="200dp"    android:layout_height="200dp"    android:background="#FF6143" />    <TextView    android:layout_width="150dp"    android:layout_height="150dp"    android:background="#7BFE00" />    <TextView    android:layout_width="100dp"    android:layout_height="100dp"    android:background="#FFFF00" />    </FrameLayout>    

2.5 网格布局管理(GridLayout)

设置排列对齐

属性描述
orientation设置排列方式
layout_gravity设置对其方式

设置几行几列

属性描述
rowCount设置行数
columnCount设置列数

设置组件所在的行列

属性描述
layout_row第几行,0起
layout_column第几列,0起

设置组件横跨几行几列

属性描述
rowSpan纵向跨行数
column横向跨行数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/19693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld

文章目录 前言一、Django环境配置1、python 环境2、Django环境3、mysql环境4、IDE&#xff1a;pycharm 二、第一次创建Django项目1、创建项目door_web_django_system2、运行启动 三、Django项目介绍1、介绍Django项目结构2、第一个helloword4、django的项目逻辑&#xff08;和j…

React + Taro 项目 实际书写 感受

之前我总结了部分react 基础 根据官网的内容 以及Taro 框架的内容 今天我试着开始写了一下页面和开发 说一下我的感受 我之前写的是vue3 今天是第一次真正根据需求做页面开发 和逻辑功能 代码的书写 主体就是开发了这个页面 虽说这个页面 很简单 但是如果你要是第一次写 难说…

CATIA入门操作案例——压缩弹簧绘制,螺旋线的使用,法则曲线应用

目录 引出画压缩弹簧画等距部分画两端的压缩部分曲线缝合和扫掠封闭曲面得实体 总结异形弹簧新建几何体草图编辑&#xff0c;画一条样条线进行扫掠&#xff0c;圆心和半径画出曲面上的螺旋线再次选择扫掠&#xff0c;圆心和半径 其他自定义信号和槽1.自定义信号2.自定义槽3.建立…

Aigtek功率放大器的主要性能要求有哪些

功率放大器是电子系统中的重要组件&#xff0c;用于将低功率信号放大到高功率水平。功率放大器的性能直接影响到信号的放大质量和系统的整体性能。下面西安安泰将介绍功率放大器的主要性能要求。 增益&#xff1a;功率放大器应当具有足够的增益&#xff0c;即将输入信号的幅度放…

【仿真建模-anylogic】指定服务端口

Author&#xff1a;赵志乾 Date&#xff1a;2024-05-31 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 问题&#xff1a;anylogic动画模型可以在浏览器中进行展示&#xff0c;且访问端口在模型启动时随机生成&#xff1b;为了将其动画页面嵌…

读取YUV数据到AVFrame并用多线程控制帧率

文件树&#xff1a; 1.xvideo_view.h class XVideoView { public:// 像素格式枚举enum Format { RGBA 0, ARGB, YUV420P };// 渲染类型枚举enum RenderType { SDL 0 };// 创建渲染对象的静态方法static XVideoView* Create(RenderType type SDL);// 绘制帧的方法bool DrawF…

影响生产RAG流水线5大瓶颈

检索增强生成&#xff08;Retrieval Augmented Generation&#xff0c;RAG&#xff09;已成为基于大型语言模型的生成式人工智能应用的关键组成部分。其主要目标是通过将通用语言模型与外部信息检索系统集成&#xff0c;增强通用语言模型的能力。这种混合方法旨在解决传统语言模…

无法删除dll文件

碰到xxxxxx.dll文件无法删除不要慌&#xff01; 通过Tasklist /m dll文件名称 去查看它和哪个系统文件绑定运行&#xff0c;发现是explorer.exe。 我们如果直接通过del命令【当然需要在该dll文件所在的路径中】。发现拒绝访问 我们需要在任务管理器中&#xff0c;将资源管理器…

如何处理网安发出的网络安全监督检查限期整改通知

近期&#xff0c;很多客户都收到了网安发出的限期整改通知。大家都比较关心的问题是&#xff0c;如何应对处理这些限期整改通知。后续是否有其他的影响&#xff0c;需要如何做进一步的优化整改和调整。今天就这些问题给大家做一些分享。 一. 为什么会有网安的网络安全检查 主…

大多数JAVA程序员都干不到35岁吗?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「 Java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;不少人认为的程序员吃青春饭…

边缘计算:推动智能时代的前沿技术

边缘计算:推动智能时代的前沿技术 引言 随着物联网(IoT)、5G通信和人工智能(AI)技术的迅猛发展,边缘计算(Edge Computing)成为现代计算架构中的一个重要组成部分。边缘计算通过将数据处理和存储移至网络边缘,靠近数据生成源头,从而显著提高响应速度、降低延迟和带宽…

项目VS运营

一、项目与运营的定义与区别 项目与运营是企业管理中的两个重要概念&#xff0c;尽管在实际运作中它们常被视为同义词&#xff0c;但它们之间存在明显的区别。 项目&#xff0c;指的是为达到特定目标&#xff0c;通过临时性、系统性、有计划的组织、协调、控制等系列活动&…

基于深度学习的端到端语音识别时代

随着深度学习的发展&#xff0c;语音识别由DNN-HMM时代发展到基于深度学习的“端到端”时代&#xff0c;这个时代的主要特征是代价函数发生了变化&#xff0c;但基本的模型结构并没有太大变化。总体来说&#xff0c;端到端技术解决了输入序列长度远大于输出序列长度的问题。 采…

Visual Studio中调试信息格式参数:/Z7、/Zi、/ZI参数

一般的调试信息都保存在pdb文件中。 Z7参数表示这些调试信息保存到OBJ目标文件中&#xff0c;这样的好处是不需要单独分发PDB文件给下游。Zi就是把所有的调试信息都保存在pdb文件中&#xff0c;以缩小发布文件的大小。ZI和Zi类似&#xff0c;但是增加了热重载的能力&#xff1…

Django admin后台创建密文密码

Django admin后台创建密文密码 如题现在有一张用户表User # user/models.py from django.db import models from django.contrib.auth.models import AbstractUserclass User(AbstractUser):SEX_CHOICES [(0, 男),(1, 女),]sex models.IntegerField(choicesSEX_CHOICES, de…

数据结构:详解二叉树(树,二叉树顺序结构,堆的实现与应用,二叉树链式结构,链式二叉树的4种遍历方式)

目录 1.树的概念和结构 1.1树的概念 1.2树的相关概念 1.3树的代码表示 2.二叉树的概念及结构 2.1二叉树的概念 2.2特殊的二叉树 2.3二叉树的存储结构 2.3.1顺序存储 2.3.2链式存储 3.二叉树的顺序结构和实现 3.1二叉树的顺序结构 3.2堆的概念和结构 3.3堆的特点 3…

k-means聚类算法

在Python中&#xff0c;可以使用scikit-learn库来实现k-means聚类算法。scikit-learn是一个强大的机器学习库&#xff0c;提供了许多算法的实现&#xff0c;包括k-means聚类。 以下是使用scikit-learn实现k-means聚类的基本步骤&#xff1a; 安装scikit-learn&#xff1a; 如果…

一文掌握JavaScript 中类的用法

文章导读&#xff1a;AI 辅助学习前端&#xff0c;包含入门、进阶、高级部分前端系列内容&#xff0c;当前是 JavaScript 的部分&#xff0c;瑶琴会持续更新&#xff0c;适合零基础的朋友&#xff0c;已有前端工作经验的可以不看&#xff0c;也可以当作基础知识回顾。 这篇文章…

SQL常用语句--模糊查询LIKE

like模糊查询&#xff0c;支持%和下划线匹配&#xff0c;%匹配多个字符&#xff0c;_下划线&#xff1a;任意一个字符&#xff0c;示例&#xff1a; 1&#xff09;查询名字中含有张的学生信息 select * from student where sname like ‘%张%’&#xff1b; 2&#xff09;查…

MySQL统计字符长度:CHAR_LENGTH(str)

对于SQL表&#xff0c;用于计算字符串中字符数的最佳函数是 CHAR_LENGTH(str)&#xff0c;它返回字符串 str 的长度。 另一个常用的函数 LENGTH(str) 在这个问题中也适用&#xff0c;因为列 content 只包含英文字符&#xff0c;没有特殊字符。否则&#xff0c;LENGTH() 可能会返…