前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >超全的Android组件及UI框架

超全的Android组件及UI框架

作者头像
红目香薰
发布于 2022-11-29 06:13:08
发布于 2022-11-29 06:13:08
6.6K02
代码可运行
举报
文章被收录于专栏:CSDNToQQCodeCSDNToQQCode
运行总次数:2
代码可运行

设计和代码切换,一般情况下,我们 UI 布局都是先拖再细调整,也就是先用设计默认拖出一个大概的布局,然后用代码来微调

一、常见的布局

1. LinearLayout 线性布局

LinearLayout 几个重要的 XML 属性 xml 属性    说明 android:id    为组件设置一个资源 id,然后在 Java 中可以通过 findViewById(id) 找到该组件 android:background    为组件设置一个背景图片或者背景色 android:layout_width    布局的宽度,通常不直接写数字值,而是使用 wrap_content 组件实际大小 fill_parent/match_parent 填满父容器 android:layout_height    同 layout:layout_width android:baselineAligned    该属性为 false,将会阻止布局管理器与它的子元素基线对其 android:divider    设置垂直布局时,两个按钮之间的分隔条 android:gravity    设置布局管理器内组件的对齐方式,值可以是 top/button/left/right/center_vertical/fill_vertical... android:measureWithLargestChild    当属性设置为true时,所有带权重的子元素都会具有最大元素的最小尺寸 android:orientation    设置布局管理器内组件的排列方式,值可以是 vertical (默认) horizontal android:layout_gravity="left"    位于LinearLayout的最左侧 2. RelativeLayout 相对布局

重点:相对布局 (RelativeLayout) 以 父容器 或者 兄弟组件 参考+margin +padding 来设置组件的显示位置

1. 基本属性

XML 属性    说明 android:gravity    设置容器内组件的排序方式 android:ignoreGravity    如果设置改属性为 true,将忽略 android:gravity android:gravity 本元素所有子元素的重力方向,处于怎样子的位置 ,有:

top 将对象放在其容器的顶部,不改变其大小. 

bottom 将对象放在其容器的底部,不改变其大小. 

left将对象放在其容器的左侧,不改变其大小. 

right将对象放在其容器的右侧,不改变其大小. 

center_vertical 将对象纵向居中,不改变其大小. 

android:layout_gravity 和 android:gravity 的区别:

比如说对于Button控件:

android:layout_gravity 表示button在界面上的位置

android:gravity表示button上的字在button上的位置。

2.根据父容器定位属性:

XML 属性    说明 android:layout_alignParentLeft    左对齐父容器 android:layout_alignParentRight    右对齐父容器 android:layout_alignParentTop    顶部对齐父容器 android:layout_alignParentBottom    底部对齐父容器 android:layout_centerHorizontal    在父容器中水平居中 android:layout_centerVertical    在父容器中垂直居中 android:layout_centerInParent    在父容器的居中位置

各个属性示意图如下:

3. 根据兄弟组件定位属性

兄弟组件定位就是处于同一层次容器的组件

图中的组件1,2就是兄弟组件了,

如对于组件2 :android:layout_right = "@id/组件1"

而组件3与组件1或组件2并不是兄弟组件,所以组件3 不能通过 组件1或 2来进行定位

4. 设置外边距(偏移)属性

上面这些属性用于设置组件对本来位置的偏移量

虚线框是组件2 本来的位置,如果设置了组件上边和左边的边距,则位置会发生一定的偏移,向右下偏移

5. 设置内边距(填充)属性

上面这些属性用于设置组件的内边距,内边距主要用于设置组件边框和子组件之间的间隙

6. 居中设置

android:layout_centerHorizontal 如果为true,将该控件的置于水平居中; android:layout_centerVertical 如果为true,将该控件的置于垂直居中; android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;

二、常用控件

 1. TextView 文本框

TextView 继承于 View

1.1 常用属性

跑马灯效果:

识别链接效果:

android:autoLink 属性用于设置 TextView 是否识别链接类型和设置可识别的链接类型

android:autoLink 的值有以下几种

设置 TextView 字间距

属性 android:textScaleX 控制字体水平方向的缩放,默认值 1.0f,类型值是 float

如: setScaleX(2.0f);

设置 TextView 行间距

Android TextView 默认显示中文时会比较紧凑,为了让每行保持的行间距,可以设置如下属性

如:setLineSpacing(1.5) 

1.2 常用方法

void append(CharSequence text); //增加文字 CharSequence getText(); // 获取文章文字 int getTextSize();  int length();

2. EditText 输入框

EditText 继承于 TextView

2.1 常用属性

android:inputType :对输入文本类型进行限制

文本类型,多为大写、小写和数字符号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
android:inputType="none"  
android:inputType="text"  
android:inputType="textCapCharacters"  
android:inputType="textCapWords"  
android:inputType="textCapSentences"  
android:inputType="textAutoCorrect"  
android:inputType="textAutoComplete"  
android:inputType="textMultiLine"  
android:inputType="textImeMultiLine"  
android:inputType="textNoSuggestions"  
android:inputType="textUri"  
android:inputType="textEmailAddress"  // 邮箱类型
android:inputType="textEmailSubject"  
android:inputType="textShortMessage"  
android:inputType="textLongMessage"  
android:inputType="textPersonName"  
android:inputType="textPostalAddress"  
android:inputType="textPassword"    // 密码
android:inputType="textVisiblePassword"  
android:inputType="textWebEditText"  
android:inputType="textFilter"  
android:inputType="textPhonetic"

数值类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
android:inputType="number"  
android:inputType="numberSigned"  
android:inputType="numberDecimal"  
android:inputType="phone"         // 拨号键盘  
android:inputType="datetime"  
android:inputType="date"          // 日期键盘  
android:inputType="time"          // 时间键盘

2.2 常用方法

TextView 的方法,EditText 都有

.setText("success");

3. ImageView 图像视图

3.1 常用属性

ImageView 有 2中属性,分为为: src, backgroud,他们之间的区别是:

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

 设置缩小放大的大小

3.2 常用方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.button:
                imageView.setImageResource(R.drawable.image_2); // 修改图片
                break;
            default:
                break;
        }
    }

4. Button 按钮 4.1 常用属性 1. Button 继承自 TextView ,所以可以 使用 TextView 的那些属性

2. 我们可以将 Button 的 android:background 属性设置为该 drawable 资源即可轻松实现按下 按钮时不同的按钮颜色或背景

下表列出了可以设置的属性

在 res/drawable 目录下新建一个按钮状态的资源文件 btn_bg.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/btn_pressed"/>
    <item android:state_enabled="false" android:drawable="@drawable/btn_disabled"/>
    <item android:drawable="@drawable/btn_normal"/>
</selector>

 4.2 监听方法

1. 一个按钮的监听方法

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

//点击Button会改变edittext的文字为"点击了Button"

edittext.setText("点击了Button");

}

});

2. 继承于接口 OnClickListener 的监听方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MainActivity extends Activity implements OnClickListener {
    private EditText edittext;
    private Button button;
    private Button button2;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edittext=(EditText) findViewById(R.id.edit_text);
        button = (Button) findViewById(R.id.button);
        button2 = (Button) findViewById(R.id.button2);
        button.setOnClickListener(this);
        button2.setOnClickListener(this);
    }
 
    @Override
    //用switch区分是哪个id
    public void onClick(View v) {
        switch (v.getId()){
        case R.id.button:
            edittext.setText("点击了Button");
            break;
        case R.id.button2:
            edittext.setText("点击了Button2");
            break;
        }
    }
}

5. RadioButton 单选按钮 5.1 常用属性 RadioButton 单选按钮就是只能够选中一个,所以我们需要把 RadioButton 放到 RadioGroup 按钮组中,从而实现单选功能

RadioButton 继承自 Button,所以拥有 Button 的所有公开属性和方法

RadioButton 只有两个状态,选中与未选中,所以也就只有一个属性是最重要的,那就是 android:checked

android:checked

设置或获取 RadioButton 的选中状态

如果 RadioButton 未选中,那么点击它可以让它选中,但反过来是不可以的,就是不能从选中状态到未选中状态

5.2 监听方法 RadioGroup 是单选组合框,用于 将 RadioButton 框起来。在多个 RadioButton被 RadioGroup 包含的情况下,同一时刻只可以选择一个 RadioButton,并用 setOnCheckedChangeListener 来对 RadioGroup 进行监听。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//调用setOnCheckedChangeListener来对RadioGroup进行监听的代码
        radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if(checkedId == radiobutton1.getId()){
                    textView.setText("北京");
                }else if(checkedId == radiobutton2.getId()){
                    textView.setText("上海");
                }
            }
        });

6. RadioGroup 单选按钮组 6.1 常用属性 要实现 RadioButton 的 单选功能,需要把所有的 RadioButton 放到 RadioGroup 里面

 用于将几个 RadioButton 组在一起形成单选按钮组,实现单选功能,也就是选中一个,会取消其它选项的选中

RadioGroup 只提供了一个 XML 属性 android:checkedButton 用于指定初始化时选中的 ID

属性

说明

android:checkedButton

初始化时选中的选项 ID (android:id)

RadioGroup 提供了很多方法用于选中或者获取选中的选项 ID ,下面列出常用的几个

方法

说明

check(int id)

根据 id 选中某个选项

clearCheck()

清除所有选项的选中状态,也就时一个都没选中

getCheckedRadioButtonId()

获取选中的选项 id

事件

说明

OnCheckedChangeListener

当 RadioGroup 中的某个选项被选中时触发

7. CheckBox 复选框

7.1 常用属性 Android CheckBox (复选框) 继承自 Button ,可以说是只有两种状态的按钮 (选中或未选中状态)

可以把多个 CheckBox 放在一起实现同时选中多项,但是,记住,它们之间没有任何关系,一个的选中并不会影响另一个选中或者不选中

CheckBox 除了从 Button 继承而来的属性外,没有自己的属性,但从 CompoundButton 继承了一个属性 android:checked 用于表示是否选中

属性

说明

android:checked

设置或者获取 CheckBox 是否选中

7.2 监听方法

CheckBox 提供了几个方法和事件用于设置或者获取自身是否选中状态

方法

说明

isChecked()

判断自身是否选中

setChecked(boolean checked)

设置自身是否选中状态

事件

说明

OnCheckedChangeListener

选中状态改变监听器,当自身选中状态变化时会触发这个事件

8. ToggleButton 开关按钮

8.1 常用属性

ToggleButton (开关按钮) 允许我们在两个状态之间切换,有点类似于电灯的开关

ToggleButton 和 CheckBox 一样都继承自 CompoundButton ,所以都有 Button 的属性和方法,又有 CompoundButton 的属性 android:checked

8.2 监听方法

ToggleButton 提供了一些方法用来改变或获取自身的状态和开关时的文本

9. Switch 开关

9.1 常用属性

允许我们在两个状态之间切换,有点类似于现在流行的滑动解锁

Switch (开关) 也继承自 Button 和 CompoundButton,所以拥有它们的属性、方法和事件

不过 Switch 也拥有自己的属性,而且特别的多

9.2 监听方法

Switch 提供了一些方法用来改变或获取自身的状态和开关时的文本

10. ProgressBar 进度条 10.1 常用属性  ProgressBar(进度条) 可以用来显示一个操作的进度,一般用于比较耗时的地方,比如下载进度条,比如加载等待

ProgressBar 有两种模式,确定性 和 不确定性的 ,有两种外观模式,条形 和 圆形,所以总共有四种,这涉及到两个属性

 其他属性

10.2 监听方法

11. SeekBar ( 拖动条 ) 控件

11.1 常用属性

SeekBar ( 拖动条 ) 控件一般用于音乐播放器或者视频播放器的音量控制或者播放进度控制

SeekBar 是 ProgressBar 的子类,所以 ProgressBar的属性都可以用

SeekBar 有以下几个简单的属性

11.2 监听方法

SeekBar 内置了 SeekBar.OnSeekBarChangeListener 事件

该事件会触发三个方法

完毕。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RadioButton、CheckBox与ToggleButton
1.RadioButton RadioButton被称作为单选框,通常都是以组的形式出现,可以在一组控件中选择一个。 RadioButton的使用首先需要加入<RadioGroup/>,在这个组中,我们进行单选按钮的声明。 1 <RadioGroup 2 android:id="@+id/radioGroup" 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_c
水击三千
2018/02/27
1.1K0
Android开发CompoundButton抽象类控件类的使用UI之Radio、Check、Toggle[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。本篇文章就讲解了一下CompoundButton抽象类下的三个实现控件类的使用,在Android4.0之后,又新加入了一个控Switch,对它的 使用与之上介绍的三个控件类似,这里就不再详细讲解了。
全栈程序员站长
2022/08/15
1.3K0
Android开发CompoundButton抽象类控件类的使用UI之Radio、Check、Toggle[通俗易懂]
CheckBox和RadioButton使用大全
本期先来学习Button的两个子控件,无论是单选还是复选,在实际开发中都是使用的较多的控件,相信通过本期的学习即可轻松掌握。 一、CheckBox CheckBox(复选框)是Android中的复选框,主要有两种状态:选中和未选中。通过isChecked方法来判断是否被选中,当用户单击时可以在这两种状态间进行切换,会触发一个OnCheckedChange事件。 接下来通过一个简单的示例程序来学习CheckBox的使用用法。 同样使用WidgetSample工程,在app/ma
分享达人秀
2018/02/02
4.1K0
CheckBox和RadioButton使用大全
Android开发工程师文集-相关控件的讲解,五大布局
大家好,我是 Vic,今天给大家带来Android开发工程师文集-相关控件的讲解,五大布局的概述,希望你们喜欢
达达前端
2019/07/03
6240
Android 开发第七讲 RadioButton (单选按钮)
之前我们响应按钮事件都是直接通过匿名内部类的方式. new一个对象来实现OnClick方法.
IBinary
2020/09/01
1.6K0
Android 开发第七讲 RadioButton (单选按钮)
《Android》Lesson24-综合项目实战
Week14  2016/12/13上午1-4节 ,2016/12/15上午1-4节,2016/12/20上午1-4节 一、常量值 1、strings.xml 2、colors.xml 3、dim
用户1733354
2018/05/22
8880
Android widget之CompoundButton[通俗易懂]
实现方法:onCheckedChanged( CompoundButton buttonView,boolean isChecked)
全栈程序员站长
2022/06/26
2.6K0
速读原著-Android应用开发入门教程(基本控件的使用)
Android 中的基本视图是 GUI 中通常直接使用的一些类,例如:字符区域、按钮、图像区域、图像按钮、进度条等。
cwl_java
2020/02/13
1.5K0
自用知识_实用小知识
private Handler handler = new Handler(){
全栈程序员站长
2022/11/17
6730
按钮和复选框控件
本篇文章介绍Android SDK中的按钮和复选框控件。按钮可以分为多种,例如普通按钮(Button)、图像按钮(ImageButton)、选项按钮(RadioButton)、复选框(CheckBox)等
小小工匠
2021/08/16
1.4K0
android之常用控件大集合
android中的控件可谓应有尽有,从简单的Button到复杂的WebView,无所不能,无所不有。
全栈程序员站长
2022/09/06
1.3K0
android之常用控件大集合
CheckBox,选择Or不选,这是个问题!
前面我们讲过了 RadioButton与 RadioGroup,利用单选按钮组的属性来实现仿微信底部 Tab切换的效果。对比记忆一下,今天我们来讲解第二个类似的控件 CheckBox,按照惯例先看下它的类继承关系如下:
下码看花
2019/09/02
1K0
CheckBox,选择Or不选,这是个问题!
安卓开发之简单组件使用
一、TextView组件(文本框) <TextView android:id=”@+id/firstText” android:text=”第一行“ android:gravity=”top” android:textSize=”15pt” android:background=”#ff0000″ android:layout_width=”fill_parent” android:layout_height=”wrap_content” android:paddingLeft=”10dip” androi
苦咖啡
2018/05/08
9890
Android界面组件基本用法
文本框(TextView)不允许用户编辑文本内容,而编辑框(EditText)允许用户编辑文本内容
提莫队长
2019/03/01
1.8K0
你不能错过的RadioButton实践
上一篇给大家留的“课后作业”登录和注册相信小伙伴们根据我们提供的demo都已经完成啦,那么这一篇文章我们继续讲实战中会遇到的一些主要功能,话不多说,让我们进入今天的正文环节!!!
下码看花
2019/09/02
2.2K0
你不能错过的RadioButton实践
【Android从零单排系列十】《Android视图控件——RadioButton》
小伙伴们,在上文中我们介绍了Android视图控件ImageView控件,本文我们继续盘点,介绍一下视图控件的第五个控件——RadioButton。
再见孙悟空_
2023/02/10
9880
【Android从零单排系列十】《Android视图控件——RadioButton》
安卓常用的控件
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, Android!" android:textSize="18sp" android:textColor="#000000" android:gravity="center"/>
人不走空
2024/07/13
6130
Android注册登录页面
需求 主题:网抑云 用户注册 (账号 密码 性别 爱好…) (注册完成跳转到注册成功页面) 注册成功页面 (显示用户注册的详细信息) (可以跳转到登录页面) 登录页面 (使用用户注册时的账号密码登录) (进行判断) 登录成功页面 (欢迎XXX(用户注册时的昵称)先生/女士 分析 不能使用回车多行输入 账号(不可为空) 密码(不可为空)(隐藏的) 确认密码(比对) 昵称(不可为空) 性别(单选) 爱好(多选) 简介 简介可以为空,其他全部非空 inputTy
是阿超
2021/10/15
10.2K0
android开关按钮
刚开始接触开关样式的按钮是在IOS系统上面,它的切换以及滑动十分帅气,深入人心。 所谓的开关按钮,就是只有2个状态:on和off,下图就是系统IOS 7上开关按钮效果。 起初我在android上我只会使用CheckBox去满足对应的功能。后来,查看开发文档发现,android也有了自己的原生态开关控件,并且在4.0版本中又优化加入了新的类似控件--Switch控件,以及使用起来十分简单的ToggleButton,可是它们只是带有切换效果,而不带有滑动切换效果,并且Switch控件只支持高版本的系统,对于2.
xiangzhihong
2018/01/29
4.2K0
android开关按钮
Android开发之《Android应用开发揭秘》UI事件汇总
思想跑毛是很可怕的,最近去尝试了下创业,结果碰了一鼻子灰,公司乱七八糟的项目搞的焦头烂额。各种没有心情。还好,现在沉淀下来,继续android开发的征程。
全栈程序员站长
2022/08/11
1.4K0
相关推荐
RadioButton、CheckBox与ToggleButton
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验