Android UI 控件 和 对应经常使用方法详细总结

 

设计和代码切换,通常状况下,咱们 UI 布局都是先拖再细调整,也就是先用设计默认拖出一个大概的布局,而后用代码来微调html

 

 1. TextView 文本框

TextView 继承于 Viewjava

1.1 经常使用属性

 

属性 说明
android:id 为 TextView 设置一个组件 id,方便在 Java 中经过 findViewById() 方法获取到该对象
android:layout_width TextView 的宽度,值通常为 wrap_content 或者 match_parent(fill_parent),前者是控件显示的内容多大,控件就多大,然后者会填满该控件所在的父容器
固然也能够设置成特定的大小,好比 200dp
android:layout_height TextView 的宽度,内容同上
android:gravity 设置控件中的内容的对齐方向,能够是
top / button / left / right / center_vertical / fill_vertical...
android:text 设置显示的文本内容,通常将字符串写到 string.xml 文件,而后经过 @string/xxx 来引用
android:textColor 设置字体颜色,通常将颜色写入 colors.xml 文件,而后经过 @color/xxx 引用
android:textStyle 设置字体风格,能够用竖线(|)叠加,好比 bold|italic
有三个可选值:
normal(无效果)
bold(加粗)
italic(斜体)
android:textSize 设置字体大小,单位通常用 sp
android:background 设置 TextView 的背景颜色,能够是图片

跑马灯效果:android

属性 说明
android:singleLine 设置是否单行显示
android:ellipsize 设置文字超出控件宽度时的显示方式,值有
end 显示结尾部分
marquee 跑马灯滚动显示
middle 显示中间部分
none 默认
start 显示开始部分
android:marqueeRepeatLimit 设置跑马灯重复次数,值能够是如下几种
marquee_forever 重复
具体的数字,好比 2

识别连接效果:web

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

android:autoLink 的值有如下几种ide

说明
none 不识别,禁用识别
all 能够识别所有,也就是下面四种
email 电子邮件
map 地图
phone 一串数字,或者以 tel:// 开头的电话号码
web 网页地址,以 http(s):// 开头的网址

设置 TextView 字间距布局

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

如: setScaleX(2.0f);

设置 TextView 行间距this

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

属性 说明
android:lineSpacingExtra 设置行间距,如"3dp"
android:lineSpacingMultiplier 设置行间距的倍数,如 "1.2"
如:setLineSpacing(1.5)

1.2 经常使用方法

void append(CharSequence text); //增长文字

CharSequence getText(); // 获取文章文字

int getTextSize(); 

int length();

 

2. EditText 输入框

EditText 继承于 TextView

2.1 经常使用属性

属性 说明
android:hint 提示文本的内容,好比 "请输入帐户名称"
android:textColorHint 提示文本的颜色
android:selectAllOnFocus ="true",得到焦点获取文本全部内容
android:minLines="3" 设置最小行的行数为 3
android:maxLines="3" 设置 EditText 最大的行数为 3
当输入内容超过 maxline,文字会自动向上滚动
android:singleLine="true" 限制 EditText 只容许单行输入,并且不会滚动

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

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

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"

数值类型

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 给定的宽度来进行 拉伸

设置缩小放大的大小

android:adjustViewBounds 设置缩放时是否保持原图长宽比
android:maxHeight 设置 ImageView 的最大高度
android:maxWidth 设置 ImageView 的最大宽度

 

3.2 经常使用方法

@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 资源便可轻松实现按下 按钮时不一样的按钮颜色或背景

下表列出了能够设置的属性

属性 说明
drawable 引用的 Drawable 位图,能够把它放到最前面,就表示组件的正常状态
android:state_focused 是否得到焦点
android:state_window_focused 是否得到窗口焦点
android:state_enabled 控件是否可用
android:state_checkable 控件能否被勾选,例如,checkbox
android:state_checked 控件是否被勾选
android:state_selected 控件是否被选择,针对有滚轮的状况
android:state_pressed 控件是否被按下
android:state_active 控件是否处于活动状态,例如,SlidingTab
android:state_single 控件包含多个子控件时,肯定是否只显示一个子控件
android:state_first 控件包含多个子控件时,肯定第一个子控件是否处于显示状态
android:state_middle 控件包含多个子控件时,肯定中间一个子控件是否处于显示状态
android:state_last 控件包含多个子控件时,肯定最后一个子控件是否处于显示状态

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

<?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 的监听方法

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 进行监听。

//调用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

属性 说明
android:disabledAlpha 当 ToggleButton 处于 禁用 时的透明度
android:textOff 当 ToggleButton 处于  时的文本,如:android:textOff="关闭"
android:textOn 当 ToggleButton 处于  时的文本

 

8.2 监听方法

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

方法 说明
getTextOff() 获取 ToggleButton 关时显示的文本
getTextOn() 获取 ToggleButton 开时显示的文本
setChecked(boolean checked) 设置 ToggleButton 是否选中
setTextOff(CharSequence textOff) 设置 ToggleButton 关时显示的文本
setTextOn(CharSequence textOn) 设置 ToggleButton 开时显示的文本
toggle() 改变 ToggleButton 的开关状态
事件 说明
CompoundButton.OnCheckedChangeListener 当 ToggleButton 的开关状态改变时触发

 

 

9. Switch 开关

9.1 经常使用属性

容许咱们在两个状态之间切换,有点相似于如今流行的滑动解锁

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

不过 Switch 也拥有本身的属性,并且特别的多

 

属性 说明
android:showText 设置 on/off 的时候是否显示文字
android:splitTrack 是否设置一个间隙,让滑块与底部图片分隔
android:switchMinWidth 设置开关的最小宽度
android:switchPadding 设置滑块内文字的间隔
android:switchTextAppearance 设置开关的文字外观
android:textOff 按钮没有被选中时显示的文字
android:textOn 按钮被选中时显示的文字
android:textStyle 文本的样式(普通,粗体,斜体,粗体)
android:track 底部的图片
android:thumb 滑块的图片
android:typeface 设置字体,默认支持这三种:sans, serif, monospace

 

9.2 监听方法

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

方法 说明
getTextOff() 获取 Switch 关时显示的文本
getTextOn() 获取 Switch 开时显示的文本
setChecked(boolean checked) 设置 Switch 是否选中
setTextOff(CharSequence textOff) 设置 Switch 关时显示的文本
setTextOn(CharSequence textOn) 设置 Switch 开时显示的文本
toggle() 改变 Switch 的开关状态
事件 说明
CompoundButton.OnCheckedChangeListener 当 Switch 的开关状态改变时触发

 

10. ProgressBar 进度条

10.1 经常使用属性

 ProgressBar(进度条) 能够用来显示一个操做的进度,通常用于比较耗时的地方,好比下载进度条,好比加载等待

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

属性 说明
android:indeterminate 是否显示不肯定模式,默认为 true
style ProgressBar 的外观样式

android:style 属性有如下几个值能够选择

属性 说明
Widget.ProgressBar.Horizontal  
Widget.ProgressBar.Small  
Widget.ProgressBar.Large  
Widget.ProgressBar.Inverse  
Widget.ProgressBar.Small.Inverse  
Widget.ProgressBar.Large.Inverse

 其余属性

属性 说明
android:max 进度条的最大值
android:progress 进度条已完成进度值
android:progressDrawable 设置轨道对应的Drawable对象
android:indeterminate 若是设置成true,则进度条不精确显示进度
android:indeterminateDrawable 设置不显示进度的进度条的Drawable对象
android:indeterminateDuration 设置不精确显示进度的持续时间
android:secondaryProgress 二级进度条,相似于视频播放的一条是当前播放进度,一条是缓冲进度,前者经过 progress 属性进行设置

 

10.2 监听方法

 

方法 说明
getMax() 返回这个进度条的范围的上限
getProgress() 返回进度
getSecondaryProgress() 返回次要进度
incrementProgressBy(int diff) 指定增长的进度
isIndeterminate() 指示进度条是否在不肯定模式下
setIndeterminate(boolean indeterminate) 设置不肯定模式下

 

11. SeekBar ( 拖动条 ) 控件

11.1 经常使用属性

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

SeekBar 是 ProgressBar 的子类,因此 ProgressBar的属性均可以用

SeekBar 有如下几个简单的属性

属性 说明
android:max ="100" 滑动条的最大值
android:progress="60" 滑动条的当前值
android:secondaryProgress="70" 二级滑动条的进度
android:thumb = "@mipmap/sb_icon" 滑块的 drawable

 

11.2 监听方法

 

SeekBar 内置了 SeekBar.OnSeekBarChangeListener 事件

该事件会触发三个方法

方法 说明
onProgressChanged 进度发生改变时会触发
onStartTrackingTouch 按住 SeekBar 时会触发
onStopTrackingTouch 放开 SeekBar 时触发
相关文章
相关标签/搜索