《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于Android的手机相册分享软件的设计与实现
基于Android的手机相册分享软件的设计与实现
2014年微型机与应用第13期
程 涛1,2,陈慧琴1,2,孙 萍1
1.江苏农牧科技职业学院,2.江苏泰州农业物联网工程技术中心,江苏 泰州
摘要: 分析了基于Android的手机相册分享软件的功能模块,对其进行架构设计和代码实现,完成了照片拍摄,特效编辑等功能,并以广泛使用的新浪微博为例,探讨了如何通过微博授权进行分享。
Abstract:
Key words :

  摘  要: 分析了基于Android手机相册分享软件的功能模块,对其进行架构设计和代码实现,完成了照片拍摄,特效编辑等功能,并以广泛使用的新浪微博为例,探讨了如何通过微博授权进行分享。

  关键词: Android;手机相册;分享;微博;设计与实现

  1 需求分析及技术思路

  移动互联网,就是将互联网和移动通信二者融合起来,成为一体。互联网和移动通信成为当今世界发展最快、市场前景最大的业务,随着4G移动通信技术的发展,移动终端不仅是通信网络的终端,还将成为互联网的终端,移动终端的应用软件迎来了巨大的发展空间,随时随地通过手机发微博成为广大网民交流信息的方式[1]。该软件具有拍摄照片、编辑照片、查看删除、换肤等功能,并且可以发布到新浪微博进行分享。

  本软件是基于Android操作系统开发的。Android是一个完整的手机软件平台,其主要组件有:活动(Activity)、意图(Intent)、服务(Service)、内容(Content)、广播接收器(Broadcast Receiver)。活动是表示层,是一个负责与用户交互的组件,可以显示信息并响应用户的行为;意图是一个简单的消息传递框架,用来完成Android各个组件之间的通信;服务是一个应用程序,它的生命周期很长但不能自己运行只能后台运行,主要负责更新数据源和可见的活动以及触发通知,并且可以和其他组件进行交互;内容主要负责数据的存储;广播接收器配合意图的广播消息使用,它可以监听符合特定条件的广播[2]。

  2 软件分析与设计

  2.1 系统功能划分

  功能模块划分是描述系统的一个过程,需要将需求分析中的感性描述进行抽象化,提取出要实现的功能,这是整个软件开发的一个关键过程。在系统分析的基础上,确定系统的功能模块,如图1所示。功能模块主要划分为:拍摄照片、相册浏览、相片编辑、登录到新浪微博进行分享几大功能。

001.jpg

  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.


此内容为AET网站原创,未经授权禁止转载。