Andorid 基础知识(一)

来源:互联网 发布:网络借贷中介管理办法 编辑:程序博客网 时间:2024/04/30 04:14

内容

  • Android UI
  • Android 核心组件
  • Java / Android 线程
  • Android 数据存储

View

在Android系统中,每个控件的本质都是一个Java类,即使通过XML文件设计软件的外观,在运行时,系统也会解析该XML文件,并通过XML文件的配置创建出一个个控件类的对象。

View是Android的控件体系中,在继承链最顶端的类,即:所有的控件都是View的子孙类。

ViewGroup是View的直接子类,是容器控件(例如LinearLayout、RelativeLayout等),即其内部(表现为在XML文件中是子级节点)可以有更多的控件。

除了ViewGroup及其子孙类,其它的控件(例如TextView、EditText、Button等)是不允许包括子级控件的。

Android项目结构

src:存储程序源代码,通常是.java文件
gen:自动生成的文件,例如R.java,这些文件不应该手动修改
assets:存放非二进制的资源文件,例如.mp3、.html、其它脚本文件等
bin:存放可执行文件
libs:存放.jar文件
res:存放资源文件,可存放的资源文件的类型非常有限,在res下可以存在的文件夹相对是固定的,并且各文件夹的命名必须是遵循一定规则的,不允许随便命名,且文件夹名称必须只由小写字母、减号、数字组成各文件夹下的文件的名称必须只能小写字母、下划线、数字、小数点组成
res\drawable:存放图形、图片及相关的XML配置文件
res\layout:存放界面的布局文件
res\values:存放值的配置文件,包括颜色的值、尺寸的值等等……
AndroidManifest.xml:项目清单文件,用于项目的全局配置,包括项目的版本、SDK的版本、系统组件、权限等等。
proguard-project.txt:配置代码混淆
project.properties:项目的属性配置,例如开发使用的SDK版本

Android项目的启动流程

  • 系统解析AndroidManifest.xml文件,找到节点,在节点下可能有多个节点,存在这样配置的节点,则是入口节点
  • 在入口节点中,根据android:name属性值,确定入口Activity类,例如:cn.tedu.login.MainActivity,由Android系统创建该类的对象,即:Activity activity = new cn.tedu.login.MainActivity();
  • 由Android系统调用该Activity对象的onCreate()方法,在该方法中的setContentView()方法的参数决定了加载的布局

View的通用属性

  • android:background -> 取值为RGB颜色或ARGB颜色,或@color资源
  • android:layout_width -> 控件的宽度,取值为match_parent,表示占据可用的最大值,或取值为wrap_content,意为“包裹内容”,即由内容来决定控件的宽度,也可以取值为以dp为单位的数值,或@dimen资源
  • android:layout_height -> 控件的高度,参考android:layout_width属性的取值
  • android:padding -> 内边距,即控件的4个方向的边缘与内容之间的间隔距离,取值为以dp为单位的数值,或@dimen资源
  • android:paddingLeft -> 左侧的内边距,取值同上
  • android:paddingRight -> 右侧的内边距,取值同上
  • android:paddingTop -> 顶部的内边距,取值同上
  • android:paddingRight -> 底部的内边距,取值同上

LinearLayout

控件特性

在LinearLayout下的各直接子级控件将呈水平或垂直方向的顺序排列;
在LinearLayout下的各直接子级控件可以按比例分配宽度或高度;

继承结构

View-- ViewGroup-- -- LinearLayout

核心属性

  • android:orientation -> 布局的排列方向,取值为horizontal时,各直接子级控件将水平排列,取值为vertical时,各直接子级控件将垂直排列

直接子级控件的属性

  • android:layout_gravity -> 控件的对齐方式,取值为枚举值,例如:left、right、center、 top、bottom……
  • android:layout_weight -> 比重/权重,表示控件占据剩余宽度/高度的比例,取值通常是int值,小结:以水平的线性布局为例,当各控件的宽度均是match_parent时,比重表现为控件实际宽度的反比,当各控件的宽度均是0dp时,比重表现为控件实现宽度的正比。

RelativeLayout

控件特性

在RelativeLayout下的各直接子级控件将以父级控件(RelativeLayout)或同级别其它控件作为参考,从而决定自身的尺寸和位置。

继承结构

View-- ViewGroup-- -- RelativeLayout

核心属性

直接子级控件的属性

  • android:layout_above -> 将自身置于同级别的某个控件的上方,取值为被参考的控件的id
  • android:layout_below -> 将自身置于同级别的某个控件的下方,取值同上
  • android:layout_toLeftOf -> 将自身置于同级别的某个控件的左侧,取值同上
  • android:layout_toRightOf -> 将自身置于同级别的某个控件的右侧,取值同上
  • android:layout_alignTop -> 与同级别的某个控件的顶部对齐,取值同上
  • android:layout_alignBottom -> 与同级别的某个控件的底部对齐,取值同上
  • android:layout_alignLeft -> 与同级别的某个控件的左侧对齐,取值同上
  • android:layout_alignRight -> 与同级别的某个控件的右侧对齐,取值同上
  • android:layout_alignParentLeft -> 将自身置于RelativeLayout的左侧,取值为true或false,通常,仅当需要这样的设置时才添加该属性,并取值为true,否则,不添加属性
  • android:layout_alignParentRight -> 将自身置于RelativeLayout的右侧,取值同上
  • android:layout_alignParentTop -> 将自身置于RelativeLayout的顶部,取值同上
  • android:layout_alignParentBottom -> 将自身置于RelativeLayout的底部,取值同上
  • android:layout_centerVertical -> 将自身置于RelativeLayout中的垂直方向居中,取值同上
  • android:layout_centerHorizontal -> 将自身置于RelativeLayout中的水平方向居中,取值同上
  • android:layout_centerInParent -> 将自身置于RelativeLayout中的水平和垂直方向均居中,取值同上

TextView

控件特性

用于显示字符串

继承结构

View-- TextView

核心属性

  • android:text -> 控件上显示的文字,取值为字符串,或@string资源
  • android:textColor -> 文字颜色,取值可参考android:background属性
  • android:textSize -> 文字尺寸,取值为以sp为单位的数值,或@dimen资源
  • android:gravity -> 文字在控件内部的对齐方式,该属性仅当控件的尺寸大于文字的尺寸时有效,取值为枚举值,例如:left、right、center、top、bottom……或以上5个值组合使用,并在2个值之间使用竖杠进行分隔,例如:left|center
  • android:singleLine -> 单行显示,即控件无法在1行内显示所有文字,是否只显示1行,取值为boolean类型值,当取值为true时,超出宽度的文字将不再显示,当取值为false时,超出宽度的文字将自动换行

核心方法

  • void setText(CharSequence text) -> 设置控件上显示的文字
  • void setText(int resId) -> 同上
  • CharSequence getText() -> 获取控件上显示的文字

EditText

控件特性

可以使得用户在界面上输入内容

继承结构

View-- TextView-- -- EditText

核心属性

  • android:inputType -> 输入类型,取值为枚举值,例如:text、textPassword、number等
  • android:hint -> 提示文字,仅当控件中没有任何有效内容时会显示在控件上,取值可参考android:text属性
  • andorid:textColorHint -> 提示文字的颜色,取值可参考android:textColor
  • android:ems -> (无视) 该属性仅当控件没有显式的指定宽度时有效,取值为数值,表现为控件默认将占据?个汉字所占据的宽度,如果明确的指定了宽度为match_parent或??dp,则该属性是无效的

核心方法

Button

控件特性

用于被点击的按钮;
该控件可以直接处理点击事件,并不会将事件交给父级控件处理;

继承结构

View-- TextView-- -- Button

核心属性

核心方法

RGB颜色和ARGB颜色

RGB颜色是使用#作为前缀,然后使用6位十六进制数表示的颜色,字母部分不区分大小写,例如:
- #FF0000:红色(Red)
- #00FF00:绿色(Green)
- #0000FF:蓝色(Blue)
- #000000:黑色
- #FFFFFF:白色
ARGB颜色是在RGB的基础之上,在最左侧多使用2位十六进制表示Alpha(透明度),当Alpha位的十六进制数是00时,表示完全透明,是FF时,表示完全不透明。

0 0
原创粉丝点击