APP系统开发与学习记录【一】

一、用户界面控制

1)创建新项目

        在创建新项目时,可能会遇到反应比较迟缓的情况。导致这个情况的原因是项目在创建的时候需要导入Gradle(注:gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建工具,他使用一种 基于 groovy 的特定领域语言来声明项目的设置,而不是使用传统的 XML 。gradle 就是工程的管理,帮我们做好了依赖,打包,部署,发布,各种渠道的差异管理等工作)

Gradle文件保存在C:\Users\理性人的R7000P\.gradle\wrapper\dists下

2)MainActivitty

        其中的setContentView方法是用于加载布局文件(在res\layout下)的 

3)设计布局(显性的设计方法)

a)布局方式:有以下五种(一般不用ConstraintLayout的布局方式)

 

1.ConstraintLayout

        ConstraintLayout可以有效地解决布局嵌套过多的问题。我们平时编写界面,复杂的布局总会伴随着多层的嵌套,而嵌套越多,程序的性能也就越差。ConstraintLayout则是使用约束的方式来指定各个控件的位置和关系的,它有点类似于RelativeLayout,但远比RelativeLayout要更强大(Android新特性介绍,ConstraintLayout完全解析_guolin的博客-CSDN博客_constraintlayout

2.LinearLayout(线性布局)

        LinearLayout 又称作线性布局,是一种非常常用的布局。正如它名字所描述的一样,这个布局会将它所包含的控件在线性方向上次排列。 既然是线性排列,肯定就不仅只有一个方向,可以通过android:orientation属性指定了排列方向是vertical,如果指定的是 horizontal,控件就会在水平方向上排列了。

常用的属性:

3.RelativeLayout(相对布局)

        RelativeLayout 又称作相对布局,也是一种非常常用的布局。和 LinearLayout 的排列规则不同,RelativeLayout 显得更加随意一些,它可以通过相对定位的方式让控件出现在布局的任何位置。

4.FrameLayout(帧布局)

        这种布局没有任何的定位方式,所有的控件都会摆放在布局的左上角。

5.CoordinatorLayout

        CoordinatorLayout是google在Android5.0推出的一个全新控件,很明显它是一个布局控件(默认是垂直排列可以当做线性布局来使用),作为一个容器来使用,有需要才会被创造,当它与FloatingActionButton、AppBarLayout与Toolbar、CollapsingToolbarLayout组合在一起使用会有意想不到的滚动特效

Android-浅谈CoordinatorLayout_Luckly_Du的博客-CSDN博客Android app——详解四种基本布局_Marry_Snow的博客-CSDN博客_android app布局

6.TableLayout(表格布局)

        TableLayout 允许我们使用表格的方式来排列控件,这种布局也不是很常用,你只需要了解一下它的基本用法就可以了。既然是表格,那就一定会有行和列,在设计表格时我们尽量应该让每一行都拥有相同的列数,这样的表格也是最简单的。不过有时候事情并非总会顺从我们的心意,当表格的某行一定要有不相等的列数时,就需要通过合并单元格的方式来应对。

        直接往TableLayout中添加组件,则这个组件会占满一行。当一行上有多个组件的时候,要添加一个TableRow的容器。

4)设计布局(代码的设计方法)

         要对控件进行操作的话,要求每个控件都有一个标识,格式为:android:id="@+id/button"(button不能重复

需要用的时候就是“R.id.button”(与findViewById()方法结合使用)

在MainActivity的java文件中完成,可以参考以下的例子

 

5)设计布局(使用XML和Java代码混合控制)

首先给布局设置id

        @SuppressLint("ResourceType")
        LinearLayout ly = findViewById(R.layout.activity_first);

 然后通过findViewById()方法找到该布局,再对该布局中的控件进行操作。例如:

        Button btn1=findViewById(R.id.button);
        btn1.setText("更改按钮名称");

6)控件的属性

a)控制控件的长宽

match_parent:表示自适应容器的大小

wrap_content:表示自适应控件内文本内容的大小

注:也可以直接指定其大小(sp、dp)

*一些额外需要注意的点

1、在项目中需要用到的图片素材一般都放在res\drawable下

2、layout_graity和gravity的区别:layout_graity表示控件在容器中的对齐方式,gravity表示控件中的内容在控件中的对齐方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值