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时,表示完全不透明。
- Andorid 基础知识(一)
- Andorid 面试题 一 Android基础知识
- Andorid中的AIDL(一)
- Andorid 4.4 AMS(一 数据结构)
- andorid实例源码地址分享(一)
- Andorid游戏2048开发(一)
- Andorid Animation and Graphics系列(一)
- Andorid入门学习笔记整理(一)
- Andorid--AsyncHttpClient(一)
- JavaScript(一、基础知识)
- C#基础知识(一)
- 汉字编码基础知识(一)
- .NET基础知识(一)
- PowerBuilder基础知识(一)
- java 基础知识(一)
- 信号量(一) 基础知识
- javaME基础知识(一)
- 遥感基础知识(一)
- AngularJS之表格设置样式
- 写论文的一些总结
- 横竖屏切换的生命周期总结
- 用Yarn你还能做的五件事
- FZU 2218 Simple String Problem
- Andorid 基础知识(一)
- C3P0连接池以及配置详解
- java数据类型
- [BZOJ1047][HAOI2007]理想的正方形
- Maximum Product Subarray
- 常用html样式
- 对象和类
- Deep learning:三十八(Stacked CNN简单介绍)
- TeamTalk网络模块