摘 要: 分析了基于Android的手机相册分享软件的功能模块,对其进行架构设计和代码实现,完成了照片拍摄,特效编辑等功能,并以广泛使用的新浪微博为例,探讨了如何通过微博授权进行分享。
关键词: Android;手机相册;分享;微博;设计与实现
1 需求分析及技术思路
移动互联网,就是将互联网和移动通信二者融合起来,成为一体。互联网和移动通信成为当今世界发展最快、市场前景最大的业务,随着4G移动通信技术的发展,移动终端不仅是通信网络的终端,还将成为互联网的终端,移动终端的应用软件迎来了巨大的发展空间,随时随地通过手机发微博成为广大网民交流信息的方式[1]。该软件具有拍摄照片、编辑照片、查看删除、换肤等功能,并且可以发布到新浪微博进行分享。
本软件是基于Android操作系统开发的。Android是一个完整的手机软件平台,其主要组件有:活动(Activity)、意图(Intent)、服务(Service)、内容(Content)、广播接收器(Broadcast Receiver)。活动是表示层,是一个负责与用户交互的组件,可以显示信息并响应用户的行为;意图是一个简单的消息传递框架,用来完成Android各个组件之间的通信;服务是一个应用程序,它的生命周期很长但不能自己运行只能后台运行,主要负责更新数据源和可见的活动以及触发通知,并且可以和其他组件进行交互;内容主要负责数据的存储;广播接收器配合意图的广播消息使用,它可以监听符合特定条件的广播[2]。
2 软件分析与设计
2.1 系统功能划分
功能模块划分是描述系统的一个过程,需要将需求分析中的感性描述进行抽象化,提取出要实现的功能,这是整个软件开发的一个关键过程。在系统分析的基础上,确定系统的功能模块,如图1所示。功能模块主要划分为:拍摄照片、相册浏览、相片编辑、登录到新浪微博进行分享几大功能。
2.2 实现步骤
(1)通过注册新浪微博账户,在weibo官方网站上输入所需创建应用的基本信息,所创建应用的AppKey及AppSecret作为新浪微博开放平台各API的身份标志,申请到AppKey和AppSecret后,就可以调用微博开放平台上的一系列接口;
(2)调用系统Camera,使用的是Intent Camera方式,借助Intent和MediaStroe调用系统Camera App程序来实现拍照功能;
(3)获得SD卡DCIM中所有图片,获取每张图片的id,为删除、分享等操作做准备;
(4)实现独立的编辑类和编辑布局,独立的编辑类对布局中对应的效果按钮进行相应的处理;
(5)对一个ImageButton的处理,提供多个皮肤供用户选择,同样需要对按钮设置事件监听,以此来捕捉事件并处理。
3 系统实现
3.1 开发环境构建
Android的应用开发通常使用Google提供的Android SDK中的工具集,它包括编译器、调试器、资源管理器和模拟器,另外通常使用Eclipse加上ADT插件(Android Development Tools)作为集成开发环境。本系统开发环境需要的工具有Eclipse、Android SDK、JDK以及ADT。开发环境搭建的具体过程为:(1)安装JDK并配置Java环境变量;(2)安装集成开发环境Eclipse,并安装工具插件ADT,该插件提供了设备模拟器、内存和效率调优工具、调试工具;(3)安装Android SDK,将tools所在文件夹路径加入到path的环境变量中;(4)通过AVD Manager添加手机模拟器并测试环境[3]。
3.2 系统功能实现
(1)能够绑定SNS社区账户,第一次访问需要授权及认证,以后便可直接访问采用Oauth2.0隐式授权认证方式登录,其核心代码如下。
Context context=MainMainActivity.this;
WifiManager wifimanager=context.getSystemService
(Context.WIFI_SERVICE);
if(!wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(true);}
if(num==1){
Weibo weibo=Weibo.getInstance();
weibo.setupConsumerConfig(CONSUMER_KEY,
CONSUMER_SECRET);
weibo.setRedirectUrl("http://www.sina.com");
//此处回调页内容应该替换为与Appkey对应的应用回调页
weibo.authorize(MainMainActivity.this,new AuthDialogListener());}
else{Intent intent=new Intent(MainMainActivity.this,MainActivity.class);
startActivity(intent);
onDestroy();}
(2)拍摄、查看、共享及分发的功能
使用Android拍照,实现起来比较简单,直接调用手机内置的摄像头。
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
(3)图片编辑功能
图像的编辑包括对图像进行异彩、负片、增强、黑白、水印、对称、放缩等操作,在换肤功能中,软件为拍摄的照片提供了3套皮肤用来换肤。
(4)换肤功能,提供换肤模板库供用户选择
先将几套皮肤放在res/drawable目录里,然后用SharePreference来记录当前的皮肤资源id,最后在启动呈现出的时候加载Activity背景。
public final static String SKIN_PREF="skinSetting";
public SharedPreferences skin;private Activity PaperActivity;
private int[] paperResources={R.drawable. wallpaperA,R.drawable.wallpaperB,R.drawable.wallpaperC,R.drawable.wallpaperD,R.drawable.wallpaper_g};
public int getSkinType(){
String key="skin_type";
return skin.getInt(key,0);}
public SkinSettingManager(Activity activity){
this.PaperActivity=activity;
skin=PaperActivity.getSharedPreferences(SKIN_PREF,3);}
本文对Android编程技术进行了研究,实现了基于Android的图像共享软件,用户可以使用该软件进行拍摄照片、特效编辑、护肤等功能,并且可以随时随地通过新浪微博进行共享。
参考文献
[1] 姬莉霞,马建红,张雷.基于Android的智能图像共享系统的研究[J].计算机与现代化,2012(8):87-89.
[2] 王为学,谷刚.基于Android和Wi-Fi的智能点菜终端设计与实现[J].电脑开发与应用,2011(12):40-42.
[3] 罗军舟,吴文甲,杨明.移动互联网:终端、网络与服务[J].计算机学报,2011(11):2029-2051.