基于Android的电子相册设计与实现doc.doc
《基于Android的电子相册设计与实现doc.doc》由会员分享,可在线阅读,更多相关《基于Android的电子相册设计与实现doc.doc(127页珍藏版)》请在咨信网上搜索。
基于Android的电子相册设计与实现【实用文档】doc 文档可直接使用可编辑,欢迎下载 学 士 学 位 论 文 基于android的电子相册---- 功能模块设计与实现 Based on the electronic photo album Android Functional module design and Implementation 指导老师: 姓名: 学号: 学院: 专业: 完成时间: 摘要 随着智能手机的逐渐普及,手机已经成为人们生活中不可缺少的一部分。而如今智能手机像个人电脑一样,具有独立的操作系统。我们可以享受智能手机给我们带来的拍照,看电影,听音乐等多媒体服务。当然智能手机上还必须要有的一个服务就是图片浏览服务,我们可以通过图片来记录下我们生活中的美妙瞬间。 本课题是在AndroidSDK2.2平台下,实现了一个手机电子相册。主要采用Android平台的Framework层提供的接口,实现了图片的文件夹路径的显示,图片的查看、放大、缩小等基本功能,支持jpg、bmp、png和gif图片格式,该程序是独立的apk文件,可以安装在Android2.2以上的系统版本的手机上。 本文在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的图片浏览器。以图片浏览器的页面为主线进行分析和研究的,进而研究了Android程序开发环境的搭建,Android工程文件中的各个文件的作用,程序界面的设计,程序数据的处理,图片的异步加载,防止程序的内存溢出以及自定义控件的使用. 关键字:Android;图片浏览器;智能手机平台;异步加载;内存溢出 Abstract With the popularity of smart mobile phone, mobile phone has become an indispensable part of people's life。 Now the intelligent mobile phone like a personal computer, with an independent operating system。 We can take pictures, enjoy intelligent mobile phone brings us to watch movies, listen to music and other multimedia services. Of course, the intelligent mobile phonealso must have a service is the picture browsing service, we can through the picture to record our life in the moment。 This topic is in the AndroidSDK2.2 platform, the realization of a mobile phoneelectronic photo album. Using Framework platform Android layer provides the interface, realize the path of the folder image display, picture of the view, zoom,and other basic functions, support for JPG, BMP, PNG and GIF image format,the program is independent of the APK files, system version can be installed in more than Android2。2 mobile phone。 In this paper, based on analyzing the principle of Android mobile phonesoftware development technology on Android platform, developed based on the image browser to provide users with better. In the photo browser pages as the main line of analysis and research, and then studied the Android program development environment to build the Android project file, each file in the role,design of the procedure interface, data processing program, asynchronousloading picture, prevent the program memory overflow and the use of a custom control. Key word: android; Photo browser; Smartphone platform; Asynchronous loading; Memory leak 目录 第1章绪论1 1.1 Android系统简介1 1。2 Android系统架构1 1.3 Android Java开发方向2 1.4 组织结构2 第2章系统分析与设计3 2。1 功能分析3 2.2 性能分析3 2.3 界面设计4 2。3.1用户界面的设计4 2.3.2功能的设计6 第3章 Android开发环境的搭建8 3.1 开发环境搭建需要的软件8 3.2 Android开发平台的搭建8 3。2。1 JDK安装8 3.2.2 Eclipse的安装9 3。2.3 Android SDK 安装10 3。2.4 ADT 安装11 3.2.5创建ADT12 第4章程序的实现13 4.1Android项目的总体架构以及其用途13 4。2 功能的实现16 4.2.1 第一个界面——-—欢迎界面16 4.2.2 第二个界面----主界面18 4。2.3 第三个界面--——GridView界面19 4.2.4 第四个界面-—--单张图片显示界面24 第5章总结30 参考文献31 第1章 绪论 1.1 Android系统简介 Android是一种以Linux为基础的开放源的操作系统,主要使用于便携设备.目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安智”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的ISO以及RIM的Blackberry OS.2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68。4%。 1。2 Android系统架构 Android的系统架构和其它操作系统一样,采用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。 Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统. 在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic 语言.而在网页编程语言方JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、phonegap等等都已经支持Android开发。而在Android系统底层方面,Android使用C/C++作为开发语言。 1.3 Android Java开发方向 Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化.考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。 其中Activity等同于J2ME的MIDlet,一个 Activity 类(Class)负责创建视窗(Windows),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(Stopped),甚至被系统清除(Kill). View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1。5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget.至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup.View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的.View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View。OnClickListener。另外还有BitMap等同于J2ME的Image。 1。4 组织结构 通过本软件的开发,我们可以熟悉和掌握在Android平台上的程序开发的环境的搭建,熟悉和掌握在Android平台上的程序的设计开发流程,熟悉和掌握在Android平台下编程常遇到的问题及解决办法。 第一章主要阐述了下Android的发展历史,Android的系统框架以及其Java方向的开发方面的内容. 第二章主要是对系统做的功能分析,性能的分析和程序设计。 第三章主要讲述的是Android开发环境的搭建的相关问题。 第四章主要描述的是本软件开发过程中的一些要点和难点,并贴上源代码来描述解决的一些方法。 第五章是对开发该程序做一个系统性的总结。 第2章 系统分析与设计 2.1 功能分析 如果您经常用手机拍照,那么您的手机里一定保存着数量众多的图片文件,闲暇的时候打开来和好友分享,怎能少了手机电子相册。本电子相册是一个功能齐全的图片浏览器,软件主要由四个界面构成: 第一个界面:一个欢迎界面,并在其中读取数据,提高程序的效率。 第二个界面:显示的是SD卡中所有包含了图片文件的文件夹,且以该文件夹里面的第一张图片作为该文件夹的图标。 第三个界面:当点击第二个界面的文件夹图标的时候进入第三个界面,并在其中显示该文件夹里面的所有图片。 第四个界面:当点击第三个界面里面的某个图片的时候,进入第四个界面,显示点击的那张图片,该界面实现了多点触控图片的放大和缩小功能,当往左滑时,跳转到下一张图片,当往右滑的时候跳转到上一张图片。 本电子相册不同于其他的软件,界面做的很友好,有欢迎界面,有文件夹,对手机中的图片进行归类,而且在第二个界面我们可以看到图片的物理地址,可以很快的找到图片的储存的文件目录。 程序的架构包含三个模块: 模块1:程序界面。 模块2:后台服务,后台数据处理。 模块3:处理界面的刷新。 2.2 性能分析 我认为本程序中的异步加载图片和防止程序的内存溢出是重点和难点所在。为了防止程序的内存溢出,我把该程序设计成分页浏览模式,假如说图片的数量大于30张的话,程序只会加载当前你所需要浏览的那一页的图片,并把以前浏览的图片所占的内存给清理掉。而图片的异步加载的目的就是为了提升用户的体验效果,假如把图片的加载放入到主线程的话,势必照成程序的响应时间变长,更有可能出现ANR(如果程序5秒钟没有反映的话,系统会弹出一个提示框),严重影响了用户的体验效果。 做手机上的图片浏览器需要面对的最大的问题是加载图片的效率问题和浏览图片时不会因为图片过多而造成内存溢出,因为手机不同于电脑,手机的内存是非常珍贵的,一旦内存溢出的话程序就会造成异常退出,降低了用户的体验效果。同样,当程序加载图片的速度很慢,而且滑动的时候造成很卡的话同样会降低了用户的体验效果。所以,当用户浏览图片的时候必须异步加载图片,当用户加载的图片到达一定数量后,应该清理掉前面的图片再继续加载图片,以防程序内存溢出。 2.3 界面设计 2.3.1 用户界面的设计 在人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。从心理学意义来分,界面可分为感觉(视觉、触觉、听觉等)和情感两个层次.用户界面设计是屏幕产品的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色.用户界面设计的三大原则是:置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。 电子相册的第一界面是一个欢迎界面,设计图如图2。1所示: 图2。1 第一个界面设计图 这个界面有两个功能,首先就是展现欢迎界面,给用户一个友好的感觉,其次是为软件读取数据提供一个缓冲的时间,提高程序的运行效率。 电子相册的第二个界面是一个展现图片所在文件夹的界面,设计图如图2.2所示: 图2。2 第二个界面设计图 在这个界面,我们可以看到手机中有多少图片的文件夹,每个文件夹下有多少图片,以及文件夹在手机中的地址。 电子相册的第三个界面就是图片的具体展现,设计图如图2。3所示: 图2。3 第三个页面设计图 此界面主要是对图片展现的页面布局,采用三列,可以下拉,每页显示的行数根据手机显示屏的大小有所不一样。 电子相册的第四个页面就是每张图片的具体的展示了,设计图如图2。4所示: 图2。4 第四个页面设计图 此界面在手机上实现了多点触控,图片可以放大和缩小,当往左滑时,跳转到下一张图片,当往右滑的时候跳转到上一张图片,当跳转到第一张图片,提示这已经是第一张图片,当跳转到最后一张图片时,提示这已经是最后一张图片. 2.3。2功能的设计 功能设计就是按照产品定位的初步要求,在对用户需求及现有产品进行功能调查分析的基础上,对所定位产品应具备的目标功能系统进行概念性构建的创造活动。功能设计是功能创新和产品设计的早期工作,是设计调查、策划、概念产生、概念定义的方法,也是产品开发定位及其实施环节,体现了设计中市场导向作用.可以采用用户设计和专业设计或二者结合的方式。是以消费者的潜在需求和功能成本规划为依据,设计产品的功能,经过功能的成本核算后,由专业人员进行产品设计并生产,通过定价,开展针对性的营销,使企业跳出产品同质化陷阱。功能设计的依据是市场细分和产品定位理论的深化,市场细分方法有好多种,但归根结底都是以功能细分的. 本程序主要就是由四个界面构成,每个界面都有自己要实现的功能,针对每个界面设计功能流程图如图2.5所示: 图2。5 功能设计流程图 从第一界面到第二个界面是不需要交互的,是程序运行的过度阶段,这里主要实现遍历SD卡中的图片这个功能;第二个界面是主界面,这里要实现显示包含图片的文件夹的功能,并且能够显示出文件夹所在的路径;第三个界面是查看文件夹中具体照片的界面,这里要实现异步加载的功能;第四个界面是单张图片的显示,这里要实现多点触控、放大、缩小和切换图片的功能;从此流程图,我们不难发现,本电子相册是一个功能齐全的简单易用的程序。 第3章 Android开发环境的搭建 3.1 开发环境搭建需要的软件 (1)jdk—6u18-windows-i586.exe (2)eclipse-standard—kepler—R—win32.zip (3) android—sdk—windows—1。5_r1.zip (4) ADT插件 (5)android系统手机一部(图片浏览器中的多点触控的功能不能在android模拟器上测试) 3。2 Android开发平台的搭建 3。2.1 JDK安装 如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。设置环境变量步骤如下: 我的电脑->属性->高级->环境变量—>系统变量中添加以下环境变量: JAVA_HOME值为: D:\Program Files\Java\jdk1.6.0_18(你安装JDK的目录) CLASSPATH值为: .;%JAVA_HOME%\lib\tools。jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin; Path: 在开始追加 %JAVA_HOME%\bin; NOTE: 前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。当然在安装过程要注意一下,360安全卫士可能会提示木马防火墙,大家要选择“允许程序的所有操作",否则可能会造成JDK安装不完整. JDK的环境变量经配置完成后,可以通过打开命令提示符窗口,输入命令“java –version”, 看到Java版本的信息,来确定安装是否成功. 首先点击“开始",然后点击“运行”,输入“cmd”,按“Enter”键,然后会出现命令提示符窗口的输入界面,输入命令“java –version”.当出现类似如图3.1的画面表示安装成功了: 图3.1 命令窗口 3.2。2 Eclipse的安装 打开官网eclipse。org,点击菜单栏上面的download,选择红框里面的下载,如图,若你的电脑是32位的则点第一个,64位的点第二个,进入下载页面,一般点击红框里面的网址就可以下载了,下载完毕,你会在你保存的地方看到一个压缩包文件,它就是eclipse。 右键你下载的压缩包,解压,解压完毕后即可使用,进入文件夹,就可以看到 eclipse的启动程序,第一次打开要设置工作环境,你可以选择在别的盘或者默认c盘,点击ok,现在就成功的进入eclipse了。现在还不能进行Android的开发,还要安装其他的组件。 图3。2 eclipse首页 3.2.3 Android SDK 安装 在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。 运行SDK Setup。exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的"Force https://..。"这项,再点击Available Packages . 选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包。 在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:\AndroidDevelop\android-sdk-windows\tools)。 图3。3 设置Android SDK的环境变量 “确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。 运行 android –h 如果出现类似如图3.4所示的输出,表明安装成功: 图3.4 验证Android SDK是否安装成功 3.2.4 ADT 安装 打开 Eclipse IDE,进入菜单中的 "Help" -> "Install New Software"。 点击Add.。.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http://dl—ssl。google。com/android/eclipse。如图3。5所示: 图3.5 安装ADT 确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。 如图3.6所示: 图3.6 安装ADT组件 然后就是按提示一步一步next。 完成之后,选择Window > Preferences。。.。 在左边的面板选择Android,然后在右侧点击Browse..。并选中SDK路径,本机为:ﻫD:\AndroidDevelop\android—sdk-windows。 点击Apply、OK,配置完成。 3.2.5创建ADT 为使Android应用程序可以在模拟器上运行,必须创建AVD。 1、在Eclipse中。选择Windows > Android SDK and AVD Manager 2、点击左侧面板的Virtual Devices,再右侧点击New 3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创建AVD 注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候你: 点击左侧面板的Available Packages 在右侧勾选https://dl-ssl。google。com/android/repository/repository.xml,如图3。7所示: 图3.7 安装ADT组件 然后点击Install Selected按钮,接下来就是按提示做就行了,要做这两步,原因是在Android SDK安装中没有安装一些必要的可用包(Available Packages). 第4章 程序的实现 4。1Android项目的总体架构以及其用途 首先,用Eclipse新建一个Android项目,项目会自动生成一些目录及文件,如图4。1所示: 图4。1 项目文件 这些自动生成的目录及文件是组成Android应用程序的必需部分,它们在应用程序中所起到的作用和主题功能如下: src:该目录用来存放项目的源文件,当项目刚创建时,该文件夹中包含activity的源文件,以后用户创建的所有源文件也都将存放在该文件夹中。 gen:该文件夹中包含一个在创建项目时自动生成的R.java文件,该文件是只读文件,不能手动修改.该文件中包含许多静态的类,这些静态类用来表示项目中所有资源的引用. assets:包含应用程序需要使用到的视频与音频文件。 res:该文件是资源目录,包含项目中的资源文件并将其编译进应用程序.向些此目录中添加资源文件时,会被R.java自动记录。该文件夹下会有5个子文件夹: drawabel-hdpi:应用程序中使用的图标文件,高分辨率 drawabel—ldpi::低分辨率 drawabel-mdpi:中分辨率 (系统会根据模拟器的分辨率自动到这几个文件夹中去寻找对应的图片) layout:界面布局文件 values:包含字符串引用文件strings.xml AndroidManifest.xml:项目的总配置文件,用来配置应用中所使用的各种组件,用来设置应用程序所提供的功能以及应用程序使用到的服务和Activity。 default.properties:该文件负责记录项目所需要的环境信息,如Android的版本信息等。 src里面包含的代码即为项目中编写的代码,如图4。2所示: 图4。2 src包中文件 com。iss。activity包中放的是程序视图、监听器、状态模式文件。 com。picture.demo包中放的是程序四个主界面的应用程序组件(activity)等文件。 com.util包中放的是程序遍历、列表、自定义组件等文件. DadaAdapter包中放的是程序两种基础数据适配器文件。 res里面包含的就是程序需要用到的资源文件(动画,图片,布局等),如图4。3所示: 图4.3 res中文件 drawabel-mdpi文件夹中放的是程序所要用到的背景图片等一些图片。 layout文件夹中放的是程序的每个界面的布局文件。 其他文件的用途,如表4。1所示: 表4.1 文件列表 文件 文件的用途 gen文件夹里面的R。java文件 里面包含了自动生成的资源的id(如图片,布局,动画,布局中的控件等资源) android2.2文件 这就是android2。2系统的一个jar包 assets文件夹 存放一些如音乐文件,文本文件的资源,但是存在在这里的资源是没有id的 bin文件夹 编译后产生的一些文件以及程序的apk文件 androidManifest.xml 这个是项目的配置信息,比如android里面的4大组件就需要在这个xml里面注册 proguard.cfg 这个是混淆器,增加反编译你程序源代码的难度 project。properties 项目的一些配置信息,如该程序是基于哪个android版本的 4.2 功能的实现 4.2.1 第一个界面——-—欢迎界面 当一个Activity在PAUSE时,被kill之前,它可以调用onSaveInstanceState()来保存当前activity的状态信息(在paused状态时,要被KILLED的时候),setContentView就是设置一个Activity的显示界面,Thread创建并控制线程,设置其优先级并获取其状态,findViewById是在寻找在xml中定义的指定id的对象。 @Override protected void onCreate(Bundle ssavedInstanceState) { ﻩsuper。onCreate(savedInstanceState); ﻩsetContentView(R。layout.zzx_login); Thread thread = new Thread(this); thread.start(); ﻩzzx_login_linearlayout = (LinearLayout)findViewById(R.id。zzx_login_linearlayout); ﻩzzx_login_linearlayout。startAnimation(getAnimation()); } 开启一个后台线程来遍历SD卡里面的图片: @Override public void run() { ﻩGetFileList getFileList = new GetFileList(); list = getFileList.getFileList(); } public List<String〉 getFileList() { ﻩlist = new ArrayList<String>(); ﻩlist = getAllFileList(Environment。getExternalStorageDirectory()); return list; ﻩ} 以上getFileList()方法的作用就是遍历SD里面的所有路径,并返回一个存储了数据的list。ArrayList就是传说中的动态数组,getExternalStorageDirectory()来获取外部存储器的根目录,return 返回的就是一个包含了所有包含图片的文件夹的路径的list. public List<String> getAllFileList(File file) { String fileName; ﻩif (file.isDirectory() && !file.isHidden()) { ﻩﻩFile[] fileList = file.listFiles(); ﻩ for (int i = 0; i 〈 fileList。length; i++) { ﻩ ﻩgetAllFileList(fileList[i]); ﻩﻩ } } isDirectory()是检查一个对象是否是文件夹isHidden()是检查对象是否是隐藏值,getAllFileList获取所有文件。 else { fileName = file.toString(); if (fileName。endsWith(".jpg”) || fileName.endsWith(”.bmp") ||fileName.endsWith(”.png")) { ﻩ if (list。size() == 0) { ﻩ ﻩ list.add(file.getParent());} else { ﻩﻩfor (int i = 0; i 〈 list.size(); i++) { ﻩ ﻩ if (file.getParent().equals(list。get(i))) { ﻩ ﻩ ﻩﻩbreak;} else { ﻩﻩ ﻩ while (i == list。size() - 1) { list。add(file.getParent());} } } } } } ﻩreturn list; } 以上的代码是判断文件的格式是否是jpg、bmp或则png,如果是,获取这些文件,并把这些文件返回到list中。 功能实现的效果图如图4。4所示: 图4.4 首页效果图 4.2。2 第二个界面--—-主界面 为主界面的ListView设置适配器Adapter,并设置setOnItemClickListener点击事件: @Override public void onCreate(Bundle savedInstanceState) { ﻩﻩsuper.onCreate(savedInstanceState); setContentView(R.layout.main); ﻩﻩListView listView = (ListView) findViewById(R。id。main_listview); listView。setAdapter(new main_ListViewAdapter(this,zzx_loginActivity。list)); ﻩﻩlistView。setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { ﻩﻩarg1.setSelected(true); ﻩ TextView textView = (TextView) arg1.findViewById(R。id。file_name); String file_Name = textView。getText()。toString(); ﻩ String file_Path[] = file_Name.split("——-—"); ﻩIntent intent = new Intent(MainActivity.this,GridViewActivity。class); ﻩintent.putExtra("file_Path", file_Path[0]); ﻩ startActivity(intent); ﻩﻩlist_picture_path = new GetFileList().getPicturePath(file_Path[0]);} } 以上代码中Intent可以理解为不同组件通信的媒介或者信使,向Context.startActivity() 或Activity。startActivityForResult()方法传递一个Intent对象,可以启动一个activity,或使得一个已经存在的activity去做一些新的事情。 Listview的适配器的代码如下: @Override public View getView(int position, View convertView, ViewGroup parent) { ﻩMYHolder mHolder; if (convertView == null) { convertView= layoutInflater.inflate(R.layout.main_listview_view,null); convertView.setSelected(true); ﻩﻩmHolder = new MYHolder(); ﻩﻩmHolder.imageView=(ImageView)convertView。findViewById(R。id。image_file); ﻩ mHolder.textView_fileName=(TextView) convertView.findViewById(R.id。file_name); mHolder.textView_filePath=(TextView) convertView.findViewById(R。id。file_path); convertView.setTag(mHolder); ﻩ } 以上代码在getView()中实例化几个convertView,当用户滚动屏幕时,convertView是共用之前的,只是数据项被重新赋值了. public class MYHolder { private ImageView imageView; ﻩprivate TextView textView_fileName; private TextView textView_filePath; } public Bitmap getImageBitMap(String picture_path) { Bitmap bitmap = BitmapFactory.decodeFile(picture_path); return bitmap; } 以上convertView.getTag()包含了图片的文件夹的路径- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用文档 基于 Android 电子相册 设计 实现 实用 文档 doc
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文