基于安卓android操作系统的软件开发毕业论文内容摘要:

歌拼音输入法),下面我们就将模拟器改为中文环境。 操作步骤为:启动 Android 模拟器,进入 Android 模拟器菜单,选择 “Settings”菜单项,开打 “Settings”菜单,选择“Localeamp。 text”菜单项,打开 “Localeamp。 text”菜单,依次选择 “Select locale”项和 “Chinese(China)”项,这样就设置为中文了,然后返回桌面,如图 223 所示。 基于 android 操作系统的软件开发 12 第三章 新浪微博客户端的开发 载入页面 UI 篇 本软件设定用户第一个接触到的功能就是页面载入等待功能,这个功能对使用者来说就是一个持续 2 秒钟的等待页面,在用户等待的同时程序做一些必要的检查以及数据准备工作,载入页面分为 UI 篇和功能篇,从表及里首先是 UI 的实现,一个软件除功能之外还得有一个光鲜的外表也是非常重要的, 先用 ps 做了一下设计效果图如下: 一、 接下来的 任务就是在 android 中实现这样的效果显示,从这个效果的设计分别把图片分成 背景 、 版本号部分 、 软件名称和图标、作者名称和 blog 四个部分,按照这样的思路把分别生成 4 张 png 的图片,背景部分考虑实现横屏和竖屏切换额外添加一张横屏背景图,然后新建 android 工程,我这里的名称为 MySinaWeibo, android 版本勾选 , 并且创建名为 MainActivity 的 Activity 作为整个软件的起始页面,然后把上面的这些图片保存到项目的 res/drawablemdpi 文件夹下,关于 res 目录下的 drawablemdpi、 drawableldpi、drawablehdpi 三个文件夹的区别, mdpi 里面主要放中等分辨率的图片 , 如 HVGA (320x480)。 ldpi 里面主要放低分辨率的图片 ,如 QVGA (240x320)。 hdpi 里面主要放高分辨图 31 载入页面制作 基于 android 操作系统的软件开发 13 率的图片 ,如 WVGA (480x800),FWVGA (480x854)。 android 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片,在开发程序时为了兼容不同平台不同屏幕,建议各自 文件夹根据需求均存放不同版本图片。 二、完成图片资源的准备后 接下就 是 layout 文件的编写, 在 res/layout 文件夹下新建 文件,这个 layout 采用 LinearLayout 控件作为顶层控件,然后用 ImageView 控件分别实现版本号图片顶部靠左对齐显示、软件名称和图标图片居中对齐。 注意在版本号图片显示 ImageView 控件下面添加一个 RelativeLayout 控件作为软件名称和图标图片ImageVIew 和作者名称和 blog图片 ImageView的父控件用来控制居中对齐已经 底部对齐的实现。 三、在 ec 打开名为 MainActivity 的 Activity 源代码文件进行编辑, onCreate 部分代码如下: public void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 setContentView()。 } 然后运行项目可以在模拟器中显示,上面的几个图片都按照设计的位置和效果进行显示只是整个页面的背景还是 黑色的,接下来就是背景部分的显示实现,由于为了实现横竖屏切换显示,背景图的显示采用代码进行控制显示,首先用如下方法获取当前手机是横屏还是竖屏: //获取屏幕方向 public static int ScreenOrient(Activity activity) { int orient = ()。 if(orient != amp。 amp。 orient != ActivityIn) { //宽 高为横屏 ,反正为竖屏 WindowManager windowManager = ()。 Display display = ()。 int screenWidth = ()。 int screenHeight = ()。 orient = screenWidth screenHeight ? 基于 android 操作系统的软件开发 14 AIT :。 } return orient。 } 然后编写一个名为 AutoBackground 的公共方法用来实现屏幕背景的自动切换,后面的几乎每一个功能页面都需要用到这个方法: public static void AutoBackground(Activity activity,View view,int Background_v, int Background_h) { int orient=ScreenOrient(activity)。 if (orient == ) { //纵向 (Background_v)。 }else{ //横向 (Background_h)。 } } 完成上述两方法后在 MainActivity 的 onCreate 方法中调用 AutoBackground 方法进行屏幕自动切换: LinearLayout layout=(LinearLayout)findViewById()。 //背景自动适应 (this, layout, , )。 到此完成了载入页面的 UI 部分的实现,测试运行模拟器中查看效果,基本上跟最上面的设计效果图相符,测试效果图如下: 基于 android 操作系统的软件开发 15 sqlite 篇 通过上一 节 已经完成了载入页面的 UI 部分的实现,接下来在上面的基础上完成载入页面的功能代码。 首先说明一下新浪微博提供了 OAuth 和 Base OAuth 两种认证方式,本项目是采用OAuth 认证方式,采用这种方式就需要有用户的新浪 UserID、 Access Token、 Access Secret这 3 样东西才能自由便利的调用新浪的开放接口,本项目是这样做的当用户第一次使用软件时进行授权认证 获取这 3 样东西的时候存储到 sqlite 库中以便用户下次使用时不需要重新进行繁琐的授权认证操作直接从 sqlite 库中读取出来即可,由于这样的需求载入页面的功能设定是这样:当用户打开软件显示载入页面时开始检查 sqlite 库中是否已经保存有用户的新浪微博的 UserID 号、 Access Token、 Access Secret 的记录,如果一条记录都没有那就说明用户是第一次使用本软件那么跳到认证授权页面进行授权认证操作(认证授权功能在接下来的两篇中进行实现讲解)获取这 3 个值保存到 sqlite 库中,如果已经包括了记录,那 么读取这些记录的 UserID 号、 Access Token、 Access Secret 值然后根据这 3 个值调用新浪的 api接口获取这些记录对应的用户昵称和用户头像图标等信息。 上面功能设定中涉及到 sqlite 数据库的创建、数据表的创建、数据记录的添加、数据记录的读取等操作,这里新建名为 类文件提供 sqlite 数据表的创建、更新等。 接下来新建名为 类文件实现用户记录的创建、更新、删除等。 图 32 载入页面测试效果图 基于 android 操作系统的软件开发 16 完成上面的代码后,我们需要在载入页面中调用上面的方法 实现 sqlite 库中是否已经保存有用户的新浪微博的 UserID 号、 Access Token、 Access Secret 的记录的功能在MainActivity 的 onCreate。 OAuth 授权认证 本篇说说关于 OAuth 授权认证的事情,新浪开放 api 都必须在这个基础上才能调用,所以有必要专门来讲讲,前面的文章 中已经提到过关于新浪微博提供了 OAuth 和 Base OAuth 两种认证方式,并且本项目采用 OAuth 认证方式,至于为什么采用这个 OAuth 认证而不采用 Base OAuth 认证原因很简单,自从 Twitter 只支持 OAuth 认证方式以来,各大应用都纷纷转向 OAuth 认证方式,而新浪微博的开放平台也将在近日停止 Base OAuth 的认证方式。 OAuth 的基本概念, OAUTH 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。 与以往的授权方式不同之处是 OAUTH 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 OAUTH 是安全的。 同样新浪微博提供 OAuth 认证也是为了保证用户账号和密码的安全,在这里通过 OAuth 建立普通新浪微博用户、客户端程序(我们正在开发的这个 android 客户端程序)、新浪微博三者之间的相互信任关系,让客户端程序(我们正在开发的这个 android 客户端程序)不需要知道用户的账号和密码也能浏览、发布微博,图 33 OAuth 授权认证 示意图 基于 android 操作系统的软件开发 17 这样有效的保护了用户账号的安全性不需要把账号密码透露给客户端程序又达到了通过客户端程序写微博看微博 目的。 这个是 OAuth 的作用。 结合新浪微博的 OAuth 认证来说说具体的功能实现,首先罗列一下关键字组,下面四组关键字跟我们接下来 OAuth 认证有非常大的关系。 第一组:( App Key 和 App Secret),这组参数就是本系列文本第一篇提到的 建一个新的应用获取 App Key 和 App Secret。 第二组:( Request Token 和 Request Secret) 第三组:( oauth_verifier) 第四组:( user_id、 Access Token 和 Access Secret) 新浪微博的 OAuth 认证过程,当用户第一次使用本客户端软件时,客户端程序用第一组作为参数向新浪微博发起请求,然后新浪微博经过验证后返回第二组参数给客户端软件同时表示新浪微博信任本客户端软件,当客户端软件获取第二组参数时作为参数 引导用户浏览器跳至 新浪微博的授权页面 ,然后用户在新浪的这个授 权页面里输入自己的微博账号和密码进行授权,完成授权后根据客户端设定的回调地址把第三组参数返回给客户端软件并表示用户也信任本客户端软件,接下客户端软件把第二组参数和第三组参数作为参数再次向新浪微博发起请求,然后新浪微博返回第四组参数给客户端软件,第四组参数需要好好的保存起来这个就是用来代替用户的新浪账号和密码用的,在后面调用 api 时都需要。 从这个过程来看用户只是在新浪微博的认证网页输入过账户和密码并没有在客户端软件里输入过账户和密码,客户端软件只保存了第四组数据并没有保存用户的账户和密码,这样有效的避免了账户 和密码透露给新浪微博之外的第三方应用程序,保证了安全性。 本项目用为了方便开发采用了 oauthsignpost 开源项目 进行 OAuth 认证开发,新建 类文件对 OA 进行简单的封装, OAuth 类主要有 RequestAccessToken、GetAccessToken、 SignRequest 三个方法, 第一个方法 RequestAccessToken 就是上面过程中用来获取第三组参数用的, GetAccessToken 方法是用来获取第四组参数用, SignRequest方法是用来调用 api用。 由于采用了 oauthsignpost 开源项目简单了很多。 这样就完成了 OAuth 功能类的开发,后面都会用到这个类相关的方法。 用户授权页面 用户授权页面 UI 篇 上一篇讲了讲 OAuth 授权认证的事情 ,大概的介绍了 OAuth 的原理,并且完成了一个 的类库,提供了几个 OAuth 认证必要的方法,本篇开始具体讲本项目的用户授基于 android 操作系统的软件开发 18 权功能,用户授权页面是当用户第一次使用本软件的时候自动从载入页面跳转过来的显示的页面,涉及 OAuth 认证相关都是在上一篇的 的类基础上开发。 用户授权页面分为 UI 篇和功能篇两篇,本篇先来讲讲 UI 的实现,这次就不贴 PS 的效果图了直接贴实现后的功能截图如下: 图 34。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。