收藏 分销(赏)

基于Android的电子相册设计与实现.doc

上传人:a199****6536 文档编号:3889556 上传时间:2024-07-23 格式:DOC 页数:30 大小:136.04KB
下载 相关 举报
基于Android的电子相册设计与实现.doc_第1页
第1页 / 共30页
基于Android的电子相册设计与实现.doc_第2页
第2页 / 共30页
基于Android的电子相册设计与实现.doc_第3页
第3页 / 共30页
基于Android的电子相册设计与实现.doc_第4页
第4页 / 共30页
基于Android的电子相册设计与实现.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、学 士 学 位 论 文基于android的电子相册-功能模块设计与实现Based on the electronic photo album AndroidFunctional module design and Implementation指导老师:姓名:学号:学院:专业:完成时间:摘要摘要随着智能手机的逐渐普及,手机已经成为人们生活中不可缺少的一部分。而如今智能手机像个人电脑一样,具有独立的操作系统.我们可以享受智能手机给我们带来的拍照,看电影,听音乐等多媒体服务。当然智能手机上还必须要有的一个服务就是图片浏览服务,我们可以通过图片来记录下我们生活中的美妙瞬间。本课题是在AndroidSD

2、K2。2平台下,实现了一个手机电子相册。主要采用Android平台的Framework层提供的接口,实现了图片的文件夹路径的显示,图片的查看、放大、缩小等基本功能,支持jpg、bmp、png和gif图片格式,该程序是独立的apk文件,可以安装在Android2。2以上的系统版本的手机上.本文在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的图片浏览器。以图片浏览器的页面为主线进行分析和研究的,进而研究了Android程序开发环境的搭建,Android工程文件中的各个文件的作用,程序界面的设计,程序数据的处理,图片的异步加载,防止程序的内存溢出

3、以及自定义控件的使用。关键字:Android;图片浏览器;智能手机平台;异步加载;内存溢出IAbstractAbstractWiththe popularity ofsmartmobile phone,mobile phonehas becomean indispensable part of peoples life。Now theintelligentmobile phonelike a personalcomputer,with an independent operating system.Wecan take pictures,enjoyintelligentmobile phone

4、brings usto watch movies,listen to musicand other multimediaservices.Of course,the intelligentmobile phonealsomust have aservice is thepicture browsingservice,we canthrough the picture torecord ourlife in themoment.This topic isin the AndroidSDK2。2 platform,the realization of amobile phoneelectronic

5、 photo album。Using Frameworkplatform Android layerprovides the interface,realize thepath of the folderimagedisplay,picture of the view,zoom,and other basic functions,support for JPG,BMP,PNG andGIF image format,the program is independent of theAPK files,system versioncan be installed in more than And

6、roid2。2mobile phone。In this paper,based on analyzing theprinciple ofAndroidmobile phonesoftware development technologyonAndroid platform,developedbased on theimage browserto provide users with better。In thephoto browserpages as the main lineof analysis and research,and then studied theAndroidprogram

7、 development environmentto buildtheAndroid project file,each filein therole,design of the procedure interface,dataprocessingprogram,asynchronousloading picture,prevent the programmemoryoverflowand the use ofa custom control。Key word: android; Photo browser; Smartphone platform; Asynchronous loading;

8、 Memory leakII目录目录第1章绪论11。1 Android系统简介11。2 Android系统架构11。3 Android Java开发方向21。4 组织结构2第2章系统分析与设计32。1 功能分析32。2 性能分析32.3 界面设计42。3。1用户界面的设计42。3。2功能的设计6第3章 Android开发环境的搭建83。1 开发环境搭建需要的软件83。2 Android开发平台的搭建83.2.1 JDK安装83。2。2 Eclipse的安装93.2.3 Android SDK 安装103。2.4 ADT 安装113.2。5创建ADT12第4章程序的实现134.1Android项

9、目的总体架构以及其用途134。2 功能的实现164.2。1 第一个界面-欢迎界面164.2.2 第二个界面-主界面184。2。3 第三个界面-GridView界面194.2.4 第四个界面-单张图片显示界面24第5章总结30参考文献31IV第1章 绪论第1章 绪论1.1 Android系统简介Android是一种以Linux为基础的开放源的操作系统,主要使用于便携设备.目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安智。Android操作系统最初由Andy Rubin开发,最初主要支持手机.2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上

10、.Android的主要竞争对手是苹果公司的ISO以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一. 2012年2月数据,Android占据全球智能手机操作系统市场52。5的份额,中国市场占有率为68。4.1。2 Android系统架构Android的系统架构和其它操作系统一样,采用了分层的架构.android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多

11、种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C作为编程语言来开发应用程

12、序。另外,谷歌还在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,以便能提高效

13、率和减少资源占用,因而与J2ME等不同。 其中Activity等同于J2ME的MIDlet,一个 Activity 类(Class)负责创建视窗(Windows),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(Stopped),甚至被系统清除(Kill)。View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML

14、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类的显示很大

15、程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View。OnClickListener。另外还有BitMap等同于J2ME的Image.1。4 组织结构通过本软件的开发,我们可以熟悉和掌握在Android平台上的程序开发的环境的搭建,熟悉和掌握在Android平台上的程序的设计开发流程,熟悉和掌握在Android平台下编程常遇到的问题及解决办法.第一章主要阐述了下Android的发展历史,And

16、roid的系统框架以及其Java方向的开发方面的内容.第二章主要是对系统做的功能分析,性能的分析和程序设计.第三章主要讲述的是Android开发环境的搭建的相关问题.第四章主要描述的是本软件开发过程中的一些要点和难点,并贴上源代码来描述解决的一些方法。第五章是对开发该程序做一个系统性的总结。2第2章 系统分析与设计第2章 系统分析与设计2.1 功能分析如果您经常用手机拍照,那么您的手机里一定保存着数量众多的图片文件,闲暇的时候打开来和好友分享,怎能少了手机电子相册.本电子相册是一个功能齐全的图片浏览器,软件主要由四个界面构成:第一个界面:一个欢迎界面,并在其中读取数据,提高程序的效率.第二个界

17、面:显示的是SD卡中所有包含了图片文件的文件夹,且以该文件夹里面的第一张图片作为该文件夹的图标.第三个界面:当点击第二个界面的文件夹图标的时候进入第三个界面,并在其中显示该文件夹里面的所有图片。第四个界面:当点击第三个界面里面的某个图片的时候,进入第四个界面,显示点击的那张图片,该界面实现了多点触控图片的放大和缩小功能,当往左滑时,跳转到下一张图片,当往右滑的时候跳转到上一张图片.本电子相册不同于其他的软件,界面做的很友好,有欢迎界面,有文件夹,对手机中的图片进行归类,而且在第二个界面我们可以看到图片的物理地址,可以很快的找到图片的储存的文件目录.程序的架构包含三个模块:模块1:程序界面。模块

18、2:后台服务,后台数据处理。模块3:处理界面的刷新。2。2 性能分析我认为本程序中的异步加载图片和防止程序的内存溢出是重点和难点所在。为了防止程序的内存溢出,我把该程序设计成分页浏览模式,假如说图片的数量大于30张的话,程序只会加载当前你所需要浏览的那一页的图片,并把以前浏览的图片所占的内存给清理掉.而图片的异步加载的目的就是为了提升用户的体验效果,假如把图片的加载放入到主线程的话,势必照成程序的响应时间变长,更有可能出现ANR(如果程序5秒钟没有反映的话,系统会弹出一个提示框),严重影响了用户的体验效果。做手机上的图片浏览器需要面对的最大的问题是加载图片的效率问题和浏览图片时不会因为图片过多

19、而造成内存溢出,因为手机不同于电脑,手机的内存是非常珍贵的,一旦内存溢出的话程序就会造成异常退出,降低了用户的体验效果。同样,当程序加载图片的速度很慢,而且滑动的时候造成很卡的话同样会降低了用户的体验效果.所以,当用户浏览图片的时候必须异步加载图片,当用户加载的图片到达一定数量后,应该清理掉前面的图片再继续加载图片,以防程序内存溢出.2。3 界面设计2。3。1 用户界面的设计在人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。从心理学意义来分,界面可分为感觉(视觉、触觉、听觉等)和情感两个层次。用户界面设计是屏幕产品

20、的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。用户界面设计的三大原则是:置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。电子相册的第一界面是一个欢迎界面,设计图如图2.1所示:图2。1 第一个界面设计图 这个界面有两个功能,首先就是展现欢迎界面,给用户一个友好的感觉,其次是为软件读取数据提供一个缓冲的时间,提高程序的运行效率。电子相册的第二个界面是一个展现图片所在文件夹的界面,设计图如图2。2所示:图2。2 第二个界面设计图在这个界面,我们可以看到手机中有多少图片的文件夹,每个文件夹下有多少图片,以及文件夹在手机中的

21、地址.电子相册的第三个界面就是图片的具体展现,设计图如图2。3所示: 图2.3 第三个页面设计图 此界面主要是对图片展现的页面布局,采用三列,可以下拉,每页显示的行数根据手机显示屏的大小有所不一样。电子相册的第四个页面就是每张图片的具体的展示了,设计图如图2。4所示:图2。4 第四个页面设计图此界面在手机上实现了多点触控,图片可以放大和缩小,当往左滑时,跳转到下一张图片,当往右滑的时候跳转到上一张图片,当跳转到第一张图片,提示这已经是第一张图片,当跳转到最后一张图片时,提示这已经是最后一张图片.2.3.2功能的设计功能设计就是按照产品定位的初步要求,在对用户需求及现有产品进行功能调查分析的基础

22、上,对所定位产品应具备的目标功能系统进行概念性构建的创造活动。功能设计是功能创新和产品设计的早期工作,是设计调查、策划、概念产生、概念定义的方法,也是产品开发定位及其实施环节,体现了设计中市场导向作用.可以采用用户设计和专业设计或二者结合的方式。是以消费者的潜在需求和功能成本规划为依据,设计产品的功能,经过功能的成本核算后,由专业人员进行产品设计并生产,通过定价,开展针对性的营销,使企业跳出产品同质化陷阱.功能设计的依据是市场细分和产品定位理论的深化,市场细分方法有好多种,但归根结底都是以功能细分的.本程序主要就是由四个界面构成,每个界面都有自己要实现的功能,针对每个界面设计功能流程图如图2.

23、5所示:图2。5 功能设计流程图从第一界面到第二个界面是不需要交互的,是程序运行的过度阶段,这里主要实现遍历SD卡中的图片这个功能;第二个界面是主界面,这里要实现显示包含图片的文件夹的功能,并且能够显示出文件夹所在的路径;第三个界面是查看文件夹中具体照片的界面,这里要实现异步加载的功能;第四个界面是单张图片的显示,这里要实现多点触控、放大、缩小和切换图片的功能;从此流程图,我们不难发现,本电子相册是一个功能齐全的简单易用的程序.5第3章 Android开发环境的搭建第3章 Android开发环境的搭建3。1 开发环境搭建需要的软件(1)jdk-6u18windows-i586。exe(2)ec

24、lipsestandardkepler-Rwin32。zip (3) androidsdk-windows1.5_r1。zip (4) ADT插件(5)android系统手机一部(图片浏览器中的多点触控的功能不能在android模拟器上测试) 3。2 Android开发平台的搭建3.2.1 JDK安装如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。设置环境变量步骤如下:我的电脑-属性高级-环境变量系统变量中添加以下环境变量:JAVA_HOME值为:D:Program FilesJavajdk1。6。0_18(你安装JDK的目录)CLASSPATH值为:。;%JAVA

25、_HOMElibtools.jar;JAVA_HOMElibdt。jar;JAVA_HOME%bin;Path: 在开始追加 %JAVA_HOMEbin;NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。当然在安装过程要注意一下,360安全卫士可能会提示木马防火墙,大家要选择“允许程序的所有操作”,否则可能会造成JDK安装不完整。JDK的环境变量经配置完成后,可以通过打开命令提示符窗口,输入命令“java version”, 看到Java版本的信息,来确定安装是否成功。首先点击“开始,然后点击“运行”,输入“cmd,按“Enter”键,然后会出现命令提示符窗口的输

26、入界面,输入命令“java version”。当出现类似如图3.1的画面表示安装成功了:图3。1 命令窗口3。2。2 Eclipse的安装打开官网eclipse。org,点击菜单栏上面的download,选择红框里面的下载,如图,若你的电脑是32位的则点第一个,64位的点第二个,进入下载页面,一般点击红框里面的网址就可以下载了,下载完毕,你会在你保存的地方看到一个压缩包文件,它就是eclipse。右键你下载的压缩包,解压,解压完毕后即可使用,进入文件夹,就可以看到 eclipse的启动程序,第一次打开要设置工作环境,你可以选择在别的盘或者默认c盘,点击ok,现在就成功的进入eclipse了。现

27、在还不能进行Android的开发,还要安装其他的组件。图3。2 eclipse首页3。2。3 Android SDK 安装在Android Developers下载androidsdk_r05-windows。zip,下载完成后解压到任意路径。运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的Force https:/。.。这项,再点击Available Packages 。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Acce

28、pted,开始下载安装所选包。在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroidsdk-windowstools).图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。按钮,弹出

29、对话框要求输入Name和Location:Name自己随便取,Location输入http:/dlssl。图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:AndroidDevelopandr

30、oid-sdk-windows。点击Apply、OK,配置完成。3.2。5创建ADT为使Android应用程序可以在模拟器上运行,必须创建AVD。1、在Eclipse中。选择Windows Android SDK and AVD Manager2、点击左侧面板的Virtual Devices,再右侧点击New3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值4、点击Create AVD即可完成创建AVD注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候你:点击左

31、侧面板的Available Packages在右侧勾选https:/dlssl。图3.7 安装ADT组件然后点击Install Selected按钮,接下来就是按提示做就行了,要做这两步,原因是在Android SDK安装中没有安装一些必要的可用包(Available Packages)。8第4章 程序的实现第4章 程序的实现4。1Android项目的总体架构以及其用途首先,用Eclipse新建一个Android项目,项目会自动生成一些目录及文件,如图4。1所示:图4.1 项目文件这些自动生成的目录及文件是组成Android应用程序的必需部分,它们在应用程序中所起到的作用和主题功能如下:src

32、:该目录用来存放项目的源文件,当项目刚创建时,该文件夹中包含activity的源文件,以后用户创建的所有源文件也都将存放在该文件夹中。gen:该文件夹中包含一个在创建项目时自动生成的R。java文件,该文件是只读文件,不能手动修改。该文件中包含许多静态的类,这些静态类用来表示项目中所有资源的引用。assets:包含应用程序需要使用到的视频与音频文件。res:该文件是资源目录,包含项目中的资源文件并将其编译进应用程序。向些此目录中添加资源文件时,会被R。java自动记录.该文件夹下会有5个子文件夹:drawabelhdpi:应用程序中使用的图标文件,高分辨率drawabelldpi:低分辨率dr

33、awabel-mdpi:中分辨率(系统会根据模拟器的分辨率自动到这几个文件夹中去寻找对应的图片)layout:界面布局文件values:包含字符串引用文件strings.xmlAndroidManifest。xml:项目的总配置文件,用来配置应用中所使用的各种组件,用来设置应用程序所提供的功能以及应用程序使用到的服务和Activity。default。properties:该文件负责记录项目所需要的环境信息,如Android的版本信息等。src里面包含的代码即为项目中编写的代码,如图4。2所示:图4.2 src包中文件com.iss.activity包中放的是程序视图、监听器、状态模式文件。c

34、om.picture。demo包中放的是程序四个主界面的应用程序组件(activity)等文件。com.util包中放的是程序遍历、列表、自定义组件等文件。DadaAdapter包中放的是程序两种基础数据适配器文件。res里面包含的就是程序需要用到的资源文件(动画,图片,布局等),如图4.3所示:图4。3 res中文件drawabel-mdpi文件夹中放的是程序所要用到的背景图片等一些图片.layout文件夹中放的是程序的每个界面的布局文件.其他文件的用途,如表4.1所示:表4.1 文件列表文件文件的用途gen文件夹里面的R。java文件里面包含了自动生成的资源的id(如图片,布局,动画,布局

35、中的控件等资源)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之

36、前,它可以调用onSaveInstanceState()来保存当前activity的状态信息(在paused状态时,要被KILLED的时候),setContentView就是设置一个Activity的显示界面,Thread创建并控制线程,设置其优先级并获取其状态,findViewById是在寻找在xml中定义的指定id的对象。Overrideprotected void onCreate(Bundle ssavedInstanceState) super.onCreate(savedInstanceState);setContentView(R。layout.zzx_login);Thread

37、 thread = new Thread(this);thread。start();zzx_login_linearlayout = (LinearLayout)findViewById(R。id.zzx_login_linearlayout);zzx_login_linearlayout.startAnimation(getAnimation());开启一个后台线程来遍历SD卡里面的图片:Overridepublic void run() GetFileList getFileList = new GetFileList();list = getFileList.getFileList();

38、public ListString getFileList() list = new ArrayListString();list = getAllFileList(Environment。getExternalStorageDirectory());return list;以上getFileList()方法的作用就是遍历SD里面的所有路径,并返回一个存储了数据的list。ArrayList就是传说中的动态数组,getExternalStorageDirectory()来获取外部存储器的根目录,return 返回的就是一个包含了所有包含图片的文件夹的路径的list.public ListStr

39、ing getAllFileList(File file) String fileName;if (file.isDirectory() & !file.isHidden() File fileList = file。listFiles();for (int i = 0; i fileList.length; i+) getAllFileList(fileListi); isDirectory()是检查一个对象是否是文件夹isHidden()是检查对象是否是隐藏值,getAllFileList获取所有文件。else fileName = file。toString();if (fileName

40、。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或则

41、png,如果是,获取这些文件,并把这些文件返回到list中。功能实现的效果图如图4.4所示:图4.4 首页效果图4。2.2 第二个界面-主界面为主界面的ListView设置适配器Adapter,并设置setOnItemClickListener点击事件:Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R。layout。main);ListView listView = (ListView) findViewById(R。id.mai

42、n_listview);listView.setAdapter(new main_ListViewAdapter(this,zzx_loginActivity.list));listView。setOnItemClickListener(new OnItemClickListener() Overridepublic void onItemClick(AdapterView? arg0, View arg1, int arg2,long arg3) arg1.setSelected(true);TextView textView = (TextView) arg1。findViewById(R

43、.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_Path0);startActivity(intent);list_picture_path = new GetFileList()。getPicturePath(file_Path0);以上

44、代码中Intent可以理解为不同组件通信的媒介或者信使,向Context。startActivity()或Activity.startActivityForResult()方法传递一个Intent对象,可以启动一个activity,或使得一个已经存在的activity去做一些新的事情.Listview的适配器的代码如下:Overridepublic View getView(int position, View convertView, ViewGroup parent) MYHolder mHolder;if (convertView = null) convertView= layoutI

45、nflater.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) convertVie

46、w。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.ge

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服