短信应用架构+编辑界面布局分析_第1页
短信应用架构+编辑界面布局分析_第2页
短信应用架构+编辑界面布局分析_第3页
短信应用架构+编辑界面布局分析_第4页
短信应用架构+编辑界面布局分析_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD短信应用架构短信应用架构+编辑界面编辑界面布局分析布局分析 报告人:靳秀珍 指导人:潘艳晓Page 2UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD结构: 第一部分:短信应用架构 第二部分:短信编辑界面布局分析Page 3UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信应用架构 从软件的功能角度来讲,分为对话列表、消息列表、短信编辑、彩信编辑、短信显示、彩信显示和配置。 从实现的角度来看,分为UI展示层、发送/接收、彩信解析、彩信附件、信息数据

2、等,这些分类对应着源码中的各种包。 Page 4UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信应用架构-源码分析 UCMessage4srccomandroidmms里面都UCMessage4相关的代码,而UCMessage4srcorgw3cdom里面是一个类库,主要用于彩信格式的解析和显示。这里主要对UCMessage4src和UCMessage4res里面的一些文件作下介绍。UCMessage4srcUCMessage4src: Ui:Ui用于展示对话列表、消息列表、消息编辑、彩信附件编辑、彩信展示、播放幻灯片,负责直接与用户交互。Conversa

3、tionList.java对话列表的显示窗口 Activity,是一个ListActivity。ConversationListFragment.java 、 ConversationListAdapter.java、ConversationListItem.java、ConversationListItemData.java 这几个类和ConversationList.java一起,实现了所有对话的显示、编辑和管理。Page 5UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信应用架构-源码分析ComposeMessageActivity.java核心的窗

4、口Activity,用于编辑信息、显示一条对话Thread中的所有往来信息。MessageListView会加在其上面,负责显示往来信息。这个Activity也负责响应外部应用程序,发送SENDTO或者SEND等请求Intent。ComposeMessageFragment.javaComposeMessageActivity.java对应的布局。MessageItem.java代表一个信息的抽象数据,包含了信息相关的所有内容,比如信息的主题、消息内容、来信地址、附件内容等等。它的所有数据都是公共的内部成员,都可以直接访问。MessageListItem.java是一个布局,用于显示和控制消息

5、列表中的每一个消息的显示。MessageListView.java用于显示消息列表,继承自ListView,其生命周期由ComposeMessageActivity来控制,显示与否也由它控制。MessageListAdapter.java由ComposeMessageActivity.java创建,用于给信息列表显示层MessageListView绑定数据。RecipientEditor.java用于显示信息编辑页面上面的收件人的编辑框,它有自动补全的功能,补全的数据由RecipientAdapter来提供。 Data:用于操作当前正在编辑的信息的相关数据,负责管理当前正在编辑的信息和当前所处

6、的对话以及当前信息用到的联系人。 Dom:用于解析彩信内容的工具包。 Model:里面定义了彩信支持的附件数据结构和附件的组织方式。Page 6UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信应用架构-源码分析UCMessage4resUCMessage4res: Drawable:图片资源,可以直接存放图片也可以是XML等配置文件Layout:被编译为屏幕布局的XML文件,主要是UI展示层用到的控件Values:array.xml定义数组;colors.xml定义color drawable和颜色的字符串值;string.xml定义字符串值;dimen.

7、xml定义尺寸值;styles.xml定义样式对象。XML:任意的XML文件,在运行时通过调用Resources.getXML()读取。Page 7UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析Page 8UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-应用程序主界面 布局文件 整个视图: conversation_list_screen.xml显示未读信息: conversation_list_actionbar.xml每个对话(Thread): conversation_list

8、_item.xml这个界面的布局整体采用相对布局的方式,里面还运用了线性布局和框架布局。 Page 9UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-应用程序主界面JAVA文件: 主界面的Activity: ConversationList.java,它有两个配置属性:android:configChanges=“orientation|keyboardHidden|screenSize”,是指当屏幕方向、键盘状态或者屏幕大小发生变化时,自己来应对这些变化;android:launchMode=“singleTop”,是指Activity

9、的加载模式,singleTop模式下会将intent发送新的实例 ,如果创建 intent的时候栈顶已经有要创建的Activity的实例,则将intent发送给该实例,而不发送给新的实例 。有信息的时候,只包含一个listview控件;没有信息的时候,包含一个imageview控件和textview控件。ConversationList.java通过initMessageBox()方法new一个ConversationListFragment对象,通过ConversationListFragment.java的onCreateView()方法加载布局文件。Page 10UNICAIR COMM

10、UNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-应用程序主界面 消息列表不为空: 消息列表整体采用帧布局。 Page 11UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-应用程序主界面 主界面中的List其实 是由一个个Item组成的,对应的布局文件是Conversation_list_item.xml,布局文件把每个Item分成左右两部分,右边部分又分为Top Line和Bottom Line。Page 12UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局

11、分析-应用程序主界面 左边头像部分是在ConversationListItem.java执行initialize()方法时画出来的。Page 13UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-应用程序主界面 消息列表为空: Page 14UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-应用程序主界面 消息列表为空的时候,运行ConversationListFragment.java中的setListState()方法加载id为noMessageLayout的布局 Page 15UN

12、ICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-新建会话布局文件: Compose_message_fragment.xml 这个界面的布局分为四个部分,分别是收件人编辑框、新消息编辑框、添加联系人按钮、发送和添加附件按钮以及计数器。布局文件整体采用相对布局,里面又包含线性布局和帧布局。 如果是发送彩信的话,可以添加主题和附件。这些控件在ComposeMessageFragment.java执行initResourceRefs()方法初始化UI时加载。 Page 16UNICAIR COMMUNICATION TECHNOLOGY CO.,L

13、TD 短信编辑界面布局分析-新建会话 收件人编辑: 新消息编辑: Page 17UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-新建会话 发送和添加附件按钮以及计数器:这几个控件是放在Compose_bottom_button_area_right.xml中,然后include到Compose_message_fragment.xml里面的。 Page 18UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-新建会话 彩信的编辑是在短信编辑的基础上可以添加主题和附件,对应的控件分别是:P

14、age 19UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-新建会话彩信主题编辑框的显示与否,是由android:visibility属性控制,在ComposeMessageFragment.java文件中通过调用isSubjectEditorVisible()方法实现。添加附件的点击事件通过onClick()方法处理。Page 20UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-单个会话 布局文件: Compose_message_fragment.xml 这个界面的布局可以分为四

15、个部分,分别是收件人、会话历史、底部的主题编辑框以及发送、添加附件按钮和计数器。Page 21UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-单个会话收件人:会话历史:Page 22UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-单个会话新消息编辑:Page 23UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-单个会话 发送和添加附件按钮以及计数器:这几个控件是放在Compose_bottom_button_area_right

16、.xml中,然后include到Compose_message_fragment.xml里面的。 Page 24UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-设置界面 布局文件:preferences_category.xml JAVA 文件:MessagingPreferenceActivity.java 设置界面 这个布局在MessagingPreferenceActivity.java执行initializePreference()方法时实现。 Page 25UNICAIR COMMUNICATION TECHNOLOGY CO.

17、,LTD 短信编辑界面布局分析-设置界面对于界面上每个菜单,在MessagingPreferenceActivity.java中重写了onPerferenceTreeClick()方法,以便对菜单的点击事件做处理。Page 26UNICAIR COMMUNICATION TECHNOLOGY CO.,LTD 短信编辑界面布局分析-SIM卡信箱管理 此界面是SIM卡信箱管理时,长按一个历史信息弹出的可操作菜单,这个菜单的点击事件是由MessageBoxFragment.java中的onSimBoxOptionsItemSelected()方法响应。Page 27UNICAIR COMMUNICATION TECHN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论