android相册应用范例
篇一:基于Android的手机相册分享软件的设计与实现
基于Android的手机相册分享软件的设计与实现
摘 要: 分析了基于Android的手机相册分享软件的功能模块,对其进行架构设计和代码实现,完成了照片拍摄,特效编辑等功能,并以广泛使用的新浪微博为例,探讨了如何通过微博授权进行分享。
关键词: Android;手机相册;分享;微博;设计与实现
1 需求分析及技术思路
移动互联网,就是将互联网和移动通信二者融合起来,成为一体。互联网和移动通信成为当今世界发展最快、市场前景最大的业务,随着4G移动通信技术的发展,移动终端不仅是通信网络的终端,还将成为互联网的终端,移动终端的应用软件迎来了巨大的发展空间,随时随地通过手机发微博成为广大网民交流信息的方式[1]。该软件具有拍摄照片、编辑照片、查看删除、换肤等功能,并且可以发布到新浪微博进行分享。
本软件是基于Android操作系统开发的。Android是一个完整的手机软件平台,其主要组件有:活动(Activity)、意图(Intent)、服务(Service)、内容(Content)、广播接收器(Broadcast Receiver)。活动是表示层,是一个负责与用户交互的组件,可以显示信息并响应用户的行为;意图是一个简单的消息传递框架,用来完成Android各个组件之间的通信;服务是一个应用程序,它的生命周期很长但不能自己运行只能后台运行,主要负责更新数据源和可见的活动以及触发通知,并且可以和其他组件进行交互;内容主要负责数据的存储;广播接收器配合意图的广播消息使用,它可以监听符合特定条件的广播[2]。
2 软件分析与设计
2.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("");
//此处回调页内容应该替换为与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的图像共享软件,用户可以使用该软件进行拍摄照片、特效编辑、护肤等功能,并且可以随时随地通过新浪微博进行共享。
篇二:基于Android手机平台的电子相册科研报告
西安邮电大学
科研训练总结报告
系部名称
学生姓名
专业名称
指导老师
班 级
学号
时间 : 计算机学院 : : 计算机科学与技术 : : : 2014年 9月15日 : 至 2014年12月16日
题目: 基于Android手机平台的电子相册
一.系统主题
随着智能手机走进普通人的生活,它将成为人们获取信息的主要设备。因此,手机的应用服务将会有很大的发展空间,手机电子相册服务就是其中的一项。Android平台支持各种应用的开发,它是目前最流行的开源智能手机操作系统,最新的版本是android3.0,提供了便捷灵活的开发接口。 本课题旨在设计了一个手机电子相册。采用了Android平台的Framework层提供的接口,实现了图片预览、图片动态切换、停止播放等功能,支持jpg,bmp,png和gif图片格式,该程序是独立的apk文件,可以安装在android2.2以上的系统内。它可以让手机成为一个电子相册,用户可以将其放在心仪的地方,来展示美好的图片,而不必再去购买别的设备就能拥有精美的电子相册了。 本程序具有很好的可移植性和可继承性,开发者可以在其基础之上,建立更多的功能,来设计更加专业级的电子相册。
Android平台对我们来说已经不陌生了,从08年Google推出Android系统,已经经历了6年多的发展。 电子相册是指可以在电脑上或者是在移动终端上观赏的区别于CD/VCD的静止图片的特殊文档,其内容不局限于摄影照片,也可以包括各种艺术创作图片。电子相册具有传统相册无法比拟的优越性:图、文、声、像并茂的表现手法,随意修改编辑的功能,快速的检索方式,永不褪色的恒久保存特性,以及廉价复制分发的优越手段。 本文就是在Android平台上,基于SDK2.2开发的一款电子相册软件,包括图片预览、图片播放、动态切换、停止播放等功能。
二.解决方案
本程序中的异步加载图片和防止程序的内存溢出是重点和难点所在。为了防止程序的内存溢出,我把该程序设计成分页浏览模式,假如说图片的数量大于30张的话,程序只会加载当前你所需要浏览的那一页的图片,并把以前浏览的图片所占的内存给清理掉。而图片的异步加载的目的就是为了提升用户的体验效果,假如把图片的加载放入到主线程的话,势必照成程序的响应时间变长,更有可能出现ANR(如果程序5秒钟没有反映的话,系统会弹出一个提示框),严重影响了用户的体验效果。
做手机上的图片浏览器需要面对的最大的问题是加载图片的效率问题和浏览图片时不会因为图片过多而造成内存溢出,因为手机不同于电脑,手机的内存是非常珍贵的,一旦内存溢出的话程序就会造成异常退出,降低了用户的体验效果。同样,当程序加载图片的速度很慢,而且滑动的时候造成很卡的话同样会降低了用户的体验效果。所以,当用户浏览图片的时候必须异步加载图片,当用户加载的图片到达一定数量后,应该清理掉前面的图片再继续加载图片,以防程序内存溢出。
本电子相册是一个功能齐全的图片浏览器,软件主要由四个界面构成:
第一个界面:一个欢迎界面,并在其中读取数据,提高程序的效率。
第二个界面:显示的是SD卡中所有包含了图片文件的文件夹,且以该文件夹里面的第一张图片作为该文件夹的图标。
第三个界面:当点击第二个界面的文件夹图标的时候进入第三个界面,并在其中显示该文件夹里面的所有图片。
第四个界面:当点击第三个界面里面的某个图片的时候,进入第四个界面,
显示点击的那张图片,该界面实现了多点触控图片的放大和缩小功能,当往左滑时,跳转到下一张图片,当往右滑的时候跳转到上一张图片。
本电子相册不同于其他的软件,界面做的很友好,有欢迎界面,有文件夹,对手机中的图片进行归类,而且在第二个界面我们可以看到图片的物理地址,可以很快的找到图片的储存的文件目录。
程序的架构包含三个模块: 模块1:程序界面。 模块2:后台服务,后台数据处理。 模块3:处理界面的刷新。
三.系统框图
四.工作总结
本文介绍了如何使用android平台开发出一个手机的电子相册,通过本程序的开发我们可以熟悉和掌握在android平台上的程序开发的环境的搭建,熟悉和掌握在android平台上的程序的设计开发流程,熟悉和掌握在android平台下编程常遇到的问题及解决办法。当然这个程序相比起android市场上的其他图片浏览器相比差距还是很大的,比如加载图片的速度不够快,一次性加载的图片不够多,系统运行还不够稳定,图片浏览器的功能不够丰富等等,这些问题都待于改进,希望能在今后的学习中不断的完善自己的技能。
篇三:android创建数据库(SQLite)保存图片示例
android创建数据库(SQLite)保存图片示例
代码如下:
//1.创建数据库
public class DBService extends SQLiteOpenHelper {
private final static int VERSION = 1;
private final static String DATABASE_NAME = "uniteqlauncher.db";
public DBService(Context context) {
this(context, DATABASE_NAME, null, VERSION);
}
public DBService(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE [launcher]("
+ "[_id] INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "[photo] BINARY)"; //保存为binary格式
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(newVersion > oldVersion){
db.execSQL("DROP TABLE IF EXISTS[launcher]");
} else {
return;
}
onCreate(db);
}
}
//保存图片到数据库
public void savePhoto(Drawable appIcon, Context mContext){
LayoutInflater mInflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.app_view, null);
ImageView iv = (ImageView) v.findViewById(R.id.appicon);
iv.setImageDrawable(appIcon);
String INSERT_SQL = "INSERT INTO launcher(photo) values(?)";
SQLiteDatabase db = mDBService.getWritableDatabase(); // 得到数据库
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
((BitmapDrawable) iv.getDrawable()).getBitmap().compress(
CompressFormat.PNG, 100, baos);//压缩为PNG格式,100表示跟原图大小一样
Object[] args = new Object[] {baos.toByteArray() };
db.execSQL(INSERT_SQL, args);
baos.close();
db.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//3.从数据库中取图片
public void getPhoto() {
String SELECT_SQL = "SELECT photo FROM launcher";
ImageView appIcon = (ImageView) v.findViewById(R.id.appicon);//v是我在类中定义的一个view对象,跟前面保存图片一样
byte[] photo = null;
mDBService = new DBService(getContext());
SQLiteDatabase db = mDBService.getReadableDatabase();
Cursor mCursor = db.rawQuery(SELECT_SQL, null);
if (mCursor != null) {
if (mCursor.moveToFirst()) {//just need to query one time
photo = mCursor.getBlob(mCursor.getColumnIndex("photo"));//取出图片
}
}
if (mCursor != null) {
mCursor.close();
}
db.close();
ByteArrayInputStream bais = null;
if (photo != null) {
bais = new ByteArrayInputStream(photo);
appIcon.setImageDrawable(Drawable.createFromStream(bais, "photo"));//把图片设置到ImageView对象中
}
//appIcon显示的就是之前保存到数据库中的图片
}
篇四:基于Android平台的下载图片制作手机背景的APP开发
本科毕业设计论文
题 目基于Android平台的下载图片制作手机背景的APP开发
专业名称电子科学与技术
学生姓名冯玉鹏
指导教师翟书颖
毕业时间2016.06
一、题目
基于Android平台的下载图片制作手机背景的APP开发
二、指导思想和目的要求
随着智能手机的普及,手机在我们的生活中逐渐占据了更加重要的地位,各种各样的手机APP也孕育而生。
现在基于智能移动终端和移动网络覆盖的普及以及网速的提高,移动互联网已是人们生活中必不可少的成分。比如说:购物、阅读、社交等。同时由于现在人们的生活也比以前多元化,生活中交际的人群也趋于多元化,那么社交软件便由此产生,而且深受人们的欢迎,现已是人们生活中必不可少的成分。现在社交移动应用不仅仅是便于人们对自己周围交际的人进行信息沟通也是自己向外界释放自己心理活动的平台,这样的平台可以让大家了解自己最近的生活和心理状态。相反地,自己也可以了解到自己周围的人最近的各种生活、心理状态。由于生活得多元化,人们心理追求的精神生活也有一定的提高,社交软件不仅仅提供的是社交的便捷性和管理交际圈的便捷性,同时也是精神生活的消费和体验。随着人们生活水平逐渐的提高,那么人们生活上心理也会有微妙的变化,那么对社交应用的心理体验要求也会有微妙的变化,所以社交应用是很有市场的。更重要的是社交应用正在朝着精神生活需要的方向发展,而这个方向更是多元的和瞬息万变的。
本项目是一款基于Android平台的下载图片制作手机背景的APP开发,使Android手机拥有个性的手机背景,是手机显得更生动灵活化,与人们更为方便,让手机主人随时随地更换手机背景。本设计实现的重要功能是下载网络上更多的图片资源,并且知道图片的更多属性。本项目还可以使人们生活更加多样化,也使设计者更加熟悉Android的技术和其它在市场上的特点。
三、主要技术指标
Java语言:Java语言是一种能在跨平台应用程序的程序设计语言。这种语言 技术具有非常卓越的平台移植性、通用性、高效性以及安全性。
Eclipse软件:Eclipse是一种跨平台的自由集成开发环境(IDE)。它最主要的目的用来开发Java语言。但是也有人通过外挂程式使其作为其他一些计算机
语言的开发工具,比如C++语言和Python语言。
JDK :Java Development Kit (JDK)是整个Java技术的核心,其中包括了Java运行环境、Java工具和Java基础类库。
SDK: Software development kit(SDK)是一些被软件工程师用于为特
定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
运行环境:软件运行在windows7系统下,App运行在Android 4.4.2及以上版本
四、进度和要求
第2周到第3周:了解设计课题内容,查阅资料,撰写开题报告。
第4周到第5周:进一步查阅资料,对设计有一个初步的想法。
第6周到第7周:学习Eclipse,JSD, SDK软件的应用,并运行一些晓得程序熟悉软件,搭建Android平台。
第8周到第9周:进行初步的设计,是应用初具模型。
第10周到第11周: 编写相关程序,对程序进行测试查找BUG并做出修改。 第12周到第13周: 继续完善该设计,测试调试修改。
第13周到第14周: 整理完成毕业设计,撰写毕业论文。
第15周到第16周: 准备及完成毕业答辩。
五、主要参考书及参考资料
[1]李佐彬.ANDROID开发入门与实战体验[M]. 机械工业出版社,2011.
[2]李鸥.实战ANDROID应用开发[M].清华大学出版社,2012.
[3]王东华.ANDROID开发实例大全[M].电子工业出版社,2012.
[4]杨丰盛.ANDROID应用开发揭秘[M].北京:机械工业出版社,2010.
[5]余志龙,陈昱勋,郑杰明.ANDROID实例开发范例大全[M].北京:人民邮电出版社,2010.
[6] 胡伟.ANDROID系统架构及其驱动研究[J].广播电视大学报,2008.
[7]郑建,贺超.ANDROID和CHROME的发展与未来[J].移动通信,2010.
[8]王克宏.JAVA技术教程(基础篇)[M].北京:高等教育出版社,2002.
[9]姚尚朗,靳岩.ANDROID开发入门和实战[M].北京:人民邮电出版社,2010.
[10]陈强.ANDROID实例开发完全手册[M].北京:人民邮电出版社,2012.
[11]张利国,代闻,龚海平.ANDROID移动开发案例详解[M].北京:人民邮电出版社,2010.
[12]关立勋.ANDROID应用开发深入学习实录[M].北京:电子工业出版社,2013.10.
[13] 宗键.WINDOWS CE嵌入式系统[M].北京:北京航空航天大学出版社, 2006.
[14] 林涛.嵌入式操作系统WINDOWS CE的研究[J].微计算机信息.2006,22(6): 91-93.
[15] 齐晓静,王卫东,王剑.WINDOWS CE OAL层的结构与开发[J].单片机与嵌入式系统应用.2005(002): 0-33.
[16] 胡军辉,王友钊.WINDOWS CE设备驱动程序开发[J].计算机工程.2006, 32(016):41-43.
[17] 玲玲.SYMBIAN微核操作系统的研究及其在手机软件开发中的应用
[D].贵州贵州大学, 2007.
学生__________ 指导教师 __________ 系主任 ___________
西北工业大学明德学院本科毕业设计(论文)
摘要
随着智能手机的逐渐普及,手机在我们的生活中占据了更加重要的地位,各种各样的手机应用软件即手机APP也孕育而生。
现在随着智能手机终端多样化的发展和移动网络的广泛覆盖,移动互联网已经成为人们生活中不可或缺的一部分。比如:网络阅读,方便快捷;网络购物,方便迅速,网络游戏,轻松愉悦;网络社交,真诚友善。同时由于现在人们的生活也比以前更加丰富多样,生活中交际的人群也多种多样,互相通讯对人们的生活工作显得尤为重要,移动手机作为重要的通讯工具,手机的价值便成为了陌生人见面的第一认知,拥有手机的品牌,手机内部应用的种类也成为彼此熟悉重要依据。现在移动应用不仅仅是便于人们对自己周围交往的人进行信息沟通也是自己向外界释放自己心理活动的平台,这样的平台可以让大家了解自己最近的生活和心理状态。还可以了解到自己周围的人近期的各种生活状态、心理活动。由于生活丰富多彩,人们的精神追求也逐渐提升,物质追求仅仅是生活的保障,精神追求上升到了一个全新的高度,精神文明的发展离不开物质文明的支持,手机应用为精神追求提供了一个良性载体。随着人们物质生活水平逐渐的提高,那么人们的心理活动变得更加丰富,那么对手机应用的心理体验要求也会有微妙的提高,所以说手机应用是很有市场价值的。更重要的是手机应用正在朝着精神生活需要的方向发展,手机应用良好的弥补了日常生活工作的空虚,手机社交也更加广泛的被应用。手机应用可以千变万化也为手机应用工作者也就是网络工程师提供了更宽广的设计空间。
该项目是一款基于Android平台的下载图片制作手机背景的APP开发,使Android手机拥有个性的手机背景,使手机显得更生动灵活化,为人们提供更多的方便,让手机主人随时随地更换手机背景,随着心情的变化更换应景的手机背景。本设计实现的重要功能是下载(来自:WWw.cssyq.Com 书业网:android相册应用范例)网络上更多的图片资源,并且知道图片的更多属性。本项目还可以使人们生活更加多样化,也使设计者更加熟悉Android的技术和其它在市场上的特点。