Android - 第三章 UI开发

Android - 第三章 UI开发1.常用控件使用方法1.1. TextViewmatch_parent: 让当前的控件的大小和父布局大小一样;wrap_content: 让当前控件的大小刚好能够包含住里面的内容;android:id 控件唯一标识符android:layout_width 控件宽度android:layout_height 控件高度android:text 显示...
摘要由CSDN通过智能技术生成

Android - 第三章 UI开发

1.常用控件使用方法

1.1. TextView

match_parent: 让当前的控件的大小和父布局大小一样;
wrap_content: 让当前控件的大小刚好能够包含住里面的内容;
android:id 控件唯一标识符
android:layout_width 控件宽度
android:layout_height 控件高度
android:text 显示文本内容
android:gravity 文字对齐方式
android:textSize 文字大小
android:textColor 文字颜色

1.2. Button

android:textAllCaps=“false” 系统会对Button的所有英文字母自动大写转换,通过配置禁止这一默认特性

为Button的点击事件添加监听器
方法一:匿名类添加

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
    }
}

方法二:实现接口添加

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.activity_main);
        Button button = findViewById(R.id.button);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                // add logic.
                break;
        }
    }
}

1.3. EditText

android:hint 显示提示性文字,一旦输入后提示性文字就会消失。
android:maxLines 指定EditText最大行数

1.4. ImageView

在界面上展示图片的一个控件。

android:src 添加图片

imageView.setImageResourse(R.drawable.ima_2) 动态修改该控件显示图片内容

1.5 ProgressBar

在界面上显示一个进度条,表示我们的程序正在加载一些数据。

让进度条消失使用一个属性:
android:visibility 可选值:
visible 默认值,控件可见
invisible 控件不可见,但是仍然占据原来的位置和大小
gone 控件不可见,且不占用屏幕空间

代码动态控制使用setVisibility()方法

style 修改为其他样式的进度条
android:max 设置进度条最大值

代码动态控制进度条进程

int progress = progressBar.getProgress();
progress = progress + 10;
progressBar.setProgress(progress);

1.6 AlertDialog

AlertDialog 可以在当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他空间的交互,因此AlertDialog 一般都是用于提示一些非常重要的内容或者警告信息。比如用户删除前弹出一个确认对话框。

1.7 ProgressDialog

This class was deprecated in API level 26.

与AlertDialog类似,可以在界面上弹出一个对话框,能够屏蔽其他控件的交互能力。不同的是,ProgressDialog会在对话框显示一个进度条,一般用于表示当前操作比较耗时,让用户耐心等待。

如果在setCancelable()中传入了false,表示ProgressDialog不能通过Back键取消掉。当数据加载完成后必须调用ProgressDialog的dismiss()方法来关闭对话框,否则ProgressDialog将会一直存在。

2. 详解四种基本布局

2.1 LenearLayout

线性布局,这个布局会将他所包含的控件在线性上一次排列。
android:orientation 属性指定排列方向:
verical 垂直 horizontal 水平
在这里插入图片描述
在这里插入图片描述
android:gravity 指定文字在控件中的对齐方式
android:layout_gravity 指定控件在布局中的对齐方式
注意:当LinearLayout排列方向是horizontal时,垂直方向的对齐生效,是vertical时,水平方向的对齐方式生效。
在这里插入图片描述

android:layout_weight 指定我们使用比例的方式来指定控件大小,对于手机屏幕的适配性起到作用。
原理:系统会把LinearLayou下所有控件指定的layout_weight值相加,得到一个总值,然后每个控件所占大小的比例就是用该控件的layout_weight值除以刚才算出的总值。
在这里插入图片描述

2.2 RelativeLayout

相对布局。通过相对定位让控件出现在布局的任何位置。

相对于父布局进行定位
android:layout_alignParentLeft=“true”
android:layout_alignParentTop
android:layout_alignParentRight
android:layout_alignParentBottom
android:layout_centerInParent
在这里插入图片描述
相对于控件进行定位
android:layout_above="@id/button1"
android:layout_below
android:layout_toLeftOf
android:layout_toRightOf
在这里插入图片描述
注意:当一个控件去引用另一个控件的id时,该控件一定要定义在引用控件的后面,不然会出现找不到id的情况。

2.3 FrameLayout

帧布局。所有控件默认摆放在布局的左上角。
碎片的时候使用它。

2.4 PercentLayout

百分比布局。按比例指定控件的大小。因为LinearLayout已经支持按比例指定大小,为FrameLayout和RelativeLayout进行功能扩展,PercentFrameLayout和PercentRelativeLayout。

已经废弃,现在专用约束布局。

2.5 TableLayout

表格布局。以行列的方式管理组件。
TableLayout 布局没有边框,可以由多个 TableRow 对象或者其他组件组成,每个 TableRow 可以由多个单元格组成,每个单元格是一个 View。TableRow 不需要设置宽度 layout_width 和高度 layout_height,其宽度一定是 match_parent,即自动填满父容器,高度一定为 wrap_content,即根据内容改变高度。但对于 TableRow 中的其他组件来说,是可以设置宽度和高度的,只是必须是 wrap_content 或者 fill_parent。
TableLayout 布局提供了几个特殊属性,可以实现以下特殊效果。

  • android:shrinkColumns 属性:该属性用于设置可收缩的列。当可收缩的列太宽以至于布局内的其他列不能完全显示时,可收缩列会纵向延伸,压缩自己所占的空间,以便于其他列可以完全显示出来。- android:shrinkColumns=“1” 表示将第 2 列设置为可收缩列,列数从 0 开始。
  • android:stretchColumns 属性:该属性用于设置可伸展的列。可伸展的列会自动扩展长度以填满所有可用空间。android:stretchColumns=“1” 表示将第 2 列设置为可伸展的列。
  • android:collapseColumns 属性:该属性用于设置隐藏列。android:collapseColumns=“1” 表示将第 2 列隐藏不显示。

2.6 AbsoluteLayout

绝对布局。放入该布局的组件需要通过 android:layout_x 和 android:layout_y 两个属性指定其准确的坐标值,并显示在屏幕上。

理论上,AbsoluteLayout 布局可用以完成任何的布局设计,灵活性很大,但是在实际的工程应用中不提倡使用这种布局。因为使用这种布局不但需要精确计算每个组件的大小,增大运算量,而且当应用程序在不同屏幕尺寸的手机上运行时会产生不同效果。

3. ListView

4. RecyclerView

5. 自定义控件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值