用户登录
用户注册

分享至

【Android基础】UI

  • 作者: 简简单单单
  • 来源: 51数据库
  • 2021-08-31

一、UI布局

1、线性布局(LinearLayout)

属性描述
android:orientation安排指定的方向。“horizontal”表示为一排,“vertical”表示一列。默认为horizontal
android:gravity内部对齐(容器内全部子控件均遵循该对齐方式)
android:layout_gravity外部对齐(针对某一个单独的子控件进行对齐,其他兄弟控件不受影响)
android:layout_weight权重(比喻成体重,代表子控件在同一方向上所占比重,注意:当使用该属性时,对应宽/高需要设置为“0dp”)

2、相对布局(RelativeLayout)


3、帧布局(FrameLayout)

FrameLayout:最简单的布局管理器。会根据元素的书写顺序,依次加入到帧布局中,后面的元素会覆盖前面的元素,默认是在布局中的左上角。(应用场景,两个按钮,点击第一个时第二个显示第一个隐藏,点击第二个时第一个显示第二个隐藏)

属性描述
android:foreground设置该帧布局容器的前景图像。该图像永远置于帧布局的最上端,不会被他的子组件覆盖。
android:foregroundGravity设置前景图像显示的位置

4、约束布局(ConstraintLayout)

约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。从 Android Studio 2.3 起,官方的模板默认使用 ConstraintLayout

属性描述
app:layout_constraintLeft_toLeftOf控件左边与指定的兄弟控件左边对齐
app:layout_constraintLeft_toRightOf控件左边与指定的兄弟控件右边对齐
app:layout_constraintRight_toLeftOf控件右边与指定的兄弟控件左边对齐
app:layout_constraintRight_toRightOf控件右边与指定的兄弟控件右边对齐
app:layout_constraintTop_toTopOf控件顶端与指定的兄弟控件顶端对齐
app:layout_constraintTop_toBottomOf件顶端与指定的兄弟控件底端对齐
app:layout_constraintBottom_toTopOf控件底端与指定的兄弟控件顶端对齐
app:layout_constraintBottom_toBottomOf控件底端与指定的兄弟控件底端对齐
app:layout_constraintBaseline_toBaselineOf控件文本基线与兄弟控件对齐

二、UI控件

1、TextView

属性描述
android:text显示内容
android:textSize显示内容的字体大小,sp
android:textColor显示内容的颜色
android:lines初始显示的行数
android:maxLines最大显示的行数
android:ellipsize字过长不想换行,可以使用省略号,此值表示省略号的位置
android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web /email/phone/map/all)

2、Button

Button继承自TextView,他主要是在界面生产一个按钮,默认可点击。
当点击按钮时,会触发一个onClick事件。
可以为按钮设计图片。通过设计background属性来为Button添加背景图片

3、EditText

EditText控件与TextView控件非常相似。EditText相比TextView的最大变化是可以接受用户的输入,可以说它是用户和安卓应用进行数据传输窗户,有了它就等于有了一扇和安卓应用传输的门,通过它用户可以把数据传给安卓应用,然后得到我们想要的数据。

属性描述
android:hint提示文字
android:textColorHint提示文字的颜色
android:inputTypeinputType显示不同类型的键盘

4、ImageView

专门用于显示图片的控件,src属性定义具体的图片。background属性也可以定义图片,当src和background同时定义时,src会覆盖background。
scaleType属性控制图片如何来匹配ImageView 的size:

5、CheckedBox

1)常用属性
属性描述
android:button设置复选框的显示图片
android:checked复选框默认是否被选中
2)事件监听
        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            }
        });

6、RadioButton

必须配合RadioGroup使用,一个RaidoGroup内的RadioButton在同时,最多只能有一个被选中。而且RadioButton要加ID属性

1)常用属性
属性描述
android:button设置复选框的显示图片
android:checked复选框默认是否被选中
2)RadioButton和RadioGroup的关系

1)RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个RadioButton的容器
2)每个RadioGroup中的RadioButton同时最多只能有一个被选中
3)不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中
4)大部分场合下,一个RadioGroup中至少有2个RadioButton
5)大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置
6)RadioGroup是LinearLayout的子类,所以它也有orientation的属性

3)事件监听
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                int id = group.getCheckedRadioButtonId();//得到选中按钮的id
            }
        });

7、AutoCompleteTextView

AutoCompleteTextView继承自EditText,相比EditText该控件多了当在输入框中输入字符的时候,会根据预设的数据进行提示。

1)常用属性
属性描述
android:completionThreshold当输入几个字符后开始提示
android:completionHint根据你的输入弹出数据让你选择的时候的提示语
android:dropDownWidth下拉菜单的宽度
2)举例

a、自定义提示资源文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="city_name">
        <item>Chengdu</item>
        <item>Beijing</item>
        <item>Tianjin</item>
        <item>Suzhou</item>
        <item>Shanghai</item>
    </array>
</resources>

b、通过适配器绑定要提示的资源

        autoCompleteTextView = findViewById(R.id.AutoCompleteTextView);
        ArrayAdapter arrayAdapter = ArrayAdapter.createFromResource(this, R.array.city_name, R.layout.support_simple_spinner_dropdown_item);
        autoCompleteTextView.setAdapter(arrayAdapter);

8、MultiAutoCompleteTextView

MultiAutoCompleteTextView是多选选项
使用MultiAutoCompleteTextView必须实现MultiAutoCompleteTextView.Tokenizer接口,用于声明用于选项与选项之间分隔的符号,一般如不特殊指定,可以使用Android为我们提供的实现类MultiAutoCompleteTextView.CommaTokenizer,它设定使用英文逗号","进行分隔选项

1)常用属性
属性描述
android:completionThreshold当输入几个字符后开始提示
android:completionHint根据你的输入弹出数据让你选择的时候的提示语
android:dropDownWidth下拉菜单的宽度
2)举例

a、自定义提示资源文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="city_name">
        <item>Chengdu</item>
        <item>Beijing</item>
        <item>Tianjin</item>
        <item>Suzhou</item>
        <item>Shanghai</item>
    </array>
</resources>

b、通过适配器绑定要提示的资源

        multiAutoCompleteTextView = findViewById(R.id.MultiAutoCompleteTextView);
        ArrayAdapter arrayAdapter = ArrayAdapter.createFromResource(this, R.array.city_name, R.layout.support_simple_spinner_dropdown_item);
        multiAutoCompleteTextView.setAdapter(arrayAdapter);
        multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

软件
前端设计
程序设计
Java相关