主要分为:线性布局.相对布局,帧布局 布局是一种可用于放置很多控件的 容器,它可以按照一定的规律调整内部控件的位置,从而编写出精美的界面。
1.TextView:该控件是用来显示文本内容的控件
2.EditText是用于编辑文本信息的控件
3.Button是程序用于和用户进行交互的一个重要控件,是显示文本信息的按钮控件
4.按钮的监听方式:1.成员内部类2.匿名内部类3.当前类实现接口4.属性方式
5.ImageView 图片显示控件
6.RadioButton是具备选中或不选中状态的圆形单选框的控件
7.RadioGroup是可以容纳多个RaidoButton并且只可以选中一个的容器视图。
8…CheckBox:是方形复选框的控件
9.Switch是双状态切换开关的控件
1.ProgressBar是展示操作进度的控件。
2.SeekBar是可以拖动设置当前进度的控件。
3.RatingBar是显示星级评分的控件
4.Toast:是在一定时间内浮动显示的提示信息。
1.Activity是提供全屏界面,实现与用户交互的应用程序组件
2.Context是一个用来为应用程序提供环境信息的全局对象
3.Intent传值:1.Intent是用于各组件或应用之间通讯时携带信息的对象。2.传递普通数据3.使用Bundle对象传值4.intent传递对象5.Application传递数据6.使用Activity回传数据
1.滚动视图是用于为其它组件添加滚动条的容器视图:1.垂直滚动视图 ScrollView2.水平滚动视图 HorizontalScrollView3.Assets目录
1.Spinner是显示给定数据集合中的一条数据并允许用户通过点击进行选择的控件。
2.设置下拉列表模式:1.android:spinnerMode="dropdown” 2.android:spinnerMode="dialog” 弹窗模式3.下拉列表对话框标题4.Spinner常用方法:1.getPrompt():获取对话框的标题
2.setAdapter(SpinnerAdapter adapter):设置适配器
3.setDropDownWidth(int pixels):设置Spinner 弹出窗口的宽度
4.setPrompt(CharSequence prompt) :设置对话框的标题
5.使用Spinner监听器
6.适配器:将各种数据以合适的形式显示在视图中的对象。
WebView是显示网页的控件。
WebView回退,前进,重新加载,停止加载,显示进度
WebView与JS交互
JSON是轻量级的基于JavaScript编程语言,使用键值对封装数据的数据交换格式。
1:JSONObject是以键值对方式存储数据的Json对象。.
2:JSONArray是多个Json对象组成的Json数组。
3:解析安卓本地json文件
4:Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的Java 类库。
5:FastJSON是阿里巴巴提供的,用Java语言编写的高性能的JSON类库。
1.HTTP是位于网络应用层的超文本传输的协议。
1.HTTP的组成
1.HTTP请求由三部分组成,分别是:请求行、消息报头、请求正文
2.HTTP消息报头由四部分组成,分别为普通报头、请求报头、响应报头、实体报头
3.HTTP响应由三部分组成,分别是:状态行、消息报头、响应正文
2.HTTP 特点:
简单快速:客户向服务器请求服务时,只需传送请求参数和路径
灵活: HTTP允许传输任意类型的数据对象
无连接: 限制每次连接只处理一个请求
无状态: 协议对于事务处理没有记忆能力
1.Handler:Android中的线程间通讯的机制
1.Handler:线程间处理消息的对象,负责消息的发送和处理,使用handler时如果需要处理接受的消息则需要重写handlerMessage(Message msg)方法
2.Message:消息,其中包含了消息id,消息处理对象及处理数据,由MessageQueue队列统一管理,最终由Hanlder处理。
3.MessageQueue:消息队列,存放消息的队列,它是一种数据结构,先进先出(FIFO)
4.Looper:循环器,消息泵,不断从MessageQueue中抽取消息,因此一个MesseageQueue就需要一个Looper。
1.Handler
作用:在子线程与主线程之间发送、接收、处理消息。
属性:
MessageQueue 封装好Message对象被Handler发送出去, 发送到我们消息队列中
Looper 循环读取消息队列中的消息
2.handler常用方法:
handleMessage(Message msg) 处理返回给handler的消息
post(Runnable r) 发送消息
postAtTime(Runnable , long) 定时发送消息
postDelayes(Runnable, long) 延迟发送消息
sendMessage(Message) 发送消息
sendMessageDelayed(Message, 2000) 延迟发送消息
sendMessageAtTime(Message, 0) 定时发送消息
sendemptyMessage(int what) 发送空消息
obtainMessage()获取消息对象, 其实底层依然执行是Message.obtain();
3.相关类:
1.MessageQuequ
作用:保存Message的一个容器
常用方法:
enqueueMessage(Message) 把消息压入消息队列中
next() 从消息队列中获取消息
2.Message
作用:是线程间传递消息的载体, 包括对消息的处理和任意数据类型的处理
Message 中可以包含2个int类型的额外数据和 Object类型的数据
属性:
int what 标识消息执行的状态, 发送空消息是使用
int arg1 用来存储整型的数据
int arg2 用来存储整型的数据
Object obj 存放复杂的消息数据
Bundle data 存放复杂的消息数据
Handler target 标识当前的Message对象发送给那个Handler对象做处理
Messenger replyTo 定义消息的信使对象, 用于跨进程间消息的处理
Message sPool 消息池对象 (消息队列)
int sPoolSize = 0 记录消息池中剩余的消息数量
int MAX_POOL_SIZE = 10 消息池中最多的消息数量
方法:
obtain() 从消息池中取出消息
recycle() 使用完的Message对象需要及时回收
setTarget(Handler) 指定处理消息的Hander对象
sendToTarget() 指定Message发生给Handler做处理
setData() 将Bundle对象设置到Message中
getData() 从Message对象中得到Bundle类型的数据
3.获取Message的对象的方法:
1, 通过构造方法获得(不建议使用): Message message = new Message();
2, 通过Message的静态方法: Message message = Message.obtain();
3, 通过Handler的方法: Message message = handle.obtainMessage();
4.Looper
属性:
MessageQueue mQueue 消息队列
ThreadLocal sThreadLocal 本地线程池变量, 本地线程中只能有一个Looper对象
Looper mMainLooper 主线程的Looper对象
方法 :
prepare() 准备Looper
loop() 循环读取消息队列中的消息, 是一个死循环
myLooper() 从本地的线程池中的到Looper对象
1.ListView是垂直显示列表项并可上下滚动的控件。
1.ListView常用属性
entries: 指定ListView item的数据
divider :指定item之间分界线的颜色
deviderHeight :指定item之间分界线的高度
scrollbars :指定是否显示滑动条
2.ListView常用的方法
setSelection(int position) 设置滑动到某一个item
setDivider(Drawable divider)和 setDividerHeight(int height) 设置分割线背景和高度
addHeaderView(View v)/removeHeaderView(View v) 添加头布局、移除头布局
addFooterView(View v)/removeFooterView(View v) 添加尾布局、移除尾布局