Android 保存图片到本地。
这里只介绍按下“保存”后如何将一个Bitmap对象保存为图片文件的执行步骤,对图片的下载,图片到Bitmap对象的转换,Bitmap对象的格式转换和压缩,以及界面设计部分全部都忽略了。
确定存储路径获取外部存储权限确定外部存储状态确定文件名保存到文件中发送广播,通知系统扫描保存后的文件确定存储路径在Android中文件存储路径包括内部存储和外部存储两种类型。
对内部存储,当一个app被安装到手机后,Android系统会在内部存储的/data/data/目录下创建一个以包名称命名的文件夹。
例如/data/data/com.sohu.inputmethod.sogou/。
一个应用对内部存储的所有访问都被限制在这个文件夹中,也就是说Android应用只能在该目录中读取,创建,修改文件。
对该目录之外的其他内部存储中的目录都没有任何操作的权限。
因此,如果将图片保存在内部存储中,只能被应用自身读取,其他应用均无法读取。
如果需要让系统图库,相册或其他应用能够找到保存的图片,必须将图片保存到外部存储中。
对外部存储,当一个app被安装到手机后,Android系统会在外部存储的/Android/data/目录下创建一个以包名命名的文件夹(这里第一个/不是根路径,而是相对外部存储所挂载路径的相对路径)。
例如/storage/emulated/0/Android/data/com.sohu.inputmethod/。
这个路径同样只能被应用自身读取,其他应用不能访问。
因此,也不能将图片保存在这个目录中。
除外部存储的/Android目录之外的其他目录一般都是可以被其他应用访问的。
目前,大多数应用都会在外部存储的根路径下建立一个类似包名的多层目录,以存储需要共享的文件。
例如/storage/emulated/0/sogou/image/。
还需要注意的是,很多查看图片的应用都支持按照文件夹来查看图片。
如果将图片所在的文件夹取名为image,photo之类的,就无法和其他文件夹区分开,用户也不能识别该文件夹的用途。
因此最好取一个有区分度的文件夹名字,例如百度贴吧就保存在/tieba目录,微信是保存在/tencent/MicroMsg/WeiXin目录。
由于Android系统的碎片化问题,不同设备上外部存储的路径很可能会不同,因此,不能直接使用/storage/emulated/0/作为外部存储的根路径。
Android SDK中 Environment类 提供了getExternalStorageDirectory()方法来获取外部存储的根路径。
示例如下:[java] view plain copyString dir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/tencent/MicroMsg/WeiXin/" 需要注意的是Environment.getExternalStorageDirectory()返回的路径中最后一个字符不是/,如果需要创建子目录,需要在子目录的前后都加上/。
获取外部存储权限由于需要在外部存储中写文件,需要在AndroidManifest.xml中增加如下的权限声明。
[java] view plain copy 确定外部存储状态由于外部存储需要被挂载,也可以被卸载,在写入文件之前,需要先判断外部存储的状态是否正常。
只有状态正常情况下才可以执行保存文件的操作。
获取外部存储状态同样是通过Environment类,通过Environment.getExternalStorageState()可以得到一个字符串,来表示外部存储的状态。
同时在Environment类中定义了一系列的String常量表示不同的状态。
在所有的状态中只有内部存储处于Environment.MEDIA_MOUNTED状态时才可以读写文件,因此,需要将获取到的状态和Environment.MEDIA_MOUNTED做比较,如果不是Environment.MEDIA_MOUNTED状态,就返回保存失败。
示例如下。
[java] view plain copy//获取内部存储状态 String state = Environment.getExternalStorageState(); //如果状态不是mounted,无法读写 if (!state.equals(Environment.MEDIA_MOUNTED)) { return; } 确定文件名保存的图片文件名可以由应用根据自身需要自行确定,一般来说需要有一个命名规则,然后根据命名规则计算得到文件名。
这里列举几种常见的命名规则。
随机命名这种命名规则是随机生成一个字符串或一组数字来对图片命名。
字符串可以通过UUID来生成,数字可以通过Random()类来生成,例如:[java] view plain copy//通过UUID生成字符串文件名 String fileName1 = UUID.randomUUID().toString(); //通过Random()类生成数组命名 Random random = new Random(); String fileName2 = String.valueOf(random.nextInt(Integer.MAX_VALUE)); 这种命名规则是按照数字从小到大的顺序来对图片命名。
在程序启动时先获取图片文件名中当前最大数字的文件名,之后每保存一张图片就将数字加1即可。
时间命名这种命名规则是根据保存图片的当前系统时间来对图片命名。
系统时间可以通过System.currentTimeMillis()来获取,不过System.currentTimeMillis()获取到的时间是一个long型的整数,如果用它做文件名,无法通过文件名直接看出文件的具体保存时间。
可以通过SimpleDateFormat先对当前时间做格式化,然后再将其作为文件名来使用。
例如:[java] view plain copy使用这种命名规则来命名需要注意的是同一秒钟可能会有多张图片需要保存,在得到当前系统时间对应的文件名后,需要判断该文件是否存在。
如果文件已经存在,需要重新生成...
Android手机内存卡中的文件夹分别代表什么软件
SD卡中的文件夹,基本上都是系统软件和第三方软件的数据存储的地方。
一般看文件夹名称就能看出是属于哪个软件的。
比如tencent,就是腾讯的英文名,自然就是QQ和微信的数据所在地。
微信传送的图片什么的,都在这里。
另外,常见的文件夹名称及其作用如下:一、系统数据类——系统文件存储相关文件夹 1、.android_secure:官方app2sd的产物,存储了相关的软件使用认证验证,删除之后SD卡中的软件将无法使用。
2、Android:存放重要的程序数据,比如google:map的地图缓存,误删掉后地图还需重新下载。
3、backups:包含重要的备份文件,比如联系人导出到SD卡会导入到此文件夹。
4、bugtogo:系统出现问题的时候会形成一些报告文件,存放在此文件夹。
5、data:缓存数据文件夹,与Android类似。
例如,“截图助手”截图保存在datacom.edwardkim.android.screenshotitfullscreenshots里。
6、LOST.DIR:卡上丢失或出错的文件会移动到这里,此目录删了会自动生成。
7、SystemAppBackup:SystemApp remove(深度卸载)备份系统文件后,备份文件保存的目录。
8、bugreports:升级系统或刷机,系统和程序发生兼容错误报告列表(包括内存使用全部内容)将保存在这个文件,重起机器可以删除。
9、.keepsafe:隐藏类的软件、加密保存文件地址存放于此。
10、.thumbs:浏览或使用某一软件,以及使用某一文件夹后用于记录次数和内容的文件,随机产生,需要定期不断清除,长时间不清理会大量占用储存卡的有效空间。
11、openfeint:打开联接网络后的一个启动程序,它广泛植入移动类平台发布的软件或游戏,是更新下载或评论反馈信息的记录地址,可删除。
12、com:播放类软件在收看播放影视节目生成的文件将存放于此,可以对制作方反映回馈信息,可以删除。
13、Download(download):大写字母的是网络联接下载文件目录,小写字母的是手机自身(蓝牙,近场等)存放下载传输文件,不要误删。
二、系统工具类——系统自带工具相关文件夹 1、albumart:音乐专辑封面的缓存文件夹。
2、albums:相册缩略图的缓存文件夹。
3、cmp:音乐的缓存文件夹。
4、Playlists:播放列表的缓存文件夹。
5、DCIM:相机随机缓存文件夹,记录功能设置的参数,需要及时清理。
一些第三方相机软件拍出的相片也会保存在这里,比如360或晕影相机等。
6、***:***数据的缓存目录。
7、My documents:手机启用各种程序任务记录的文档,需要定期清除,长时间不清理会占用SD卡较大内存。
8、.nomedia:手机中隐藏的音频、图片文件夹都会在这里显示,可以自设在相关文件夹中。
9、media:使用电话通话录音软件或在线浏览视频等媒体产生的音频文件记录存档将保存在此。
10、.medieval_software:启用蓝牙传输软件时,记录任务保存文件的目录。
11、extracted:解压缩软件默认的解压目录。
三、第三方应用类 1、.mobo:Moboplayer的缓存文件。
2、.QQ:QQ的缓存文件,需要定期清除。
3、.quickoffice:quickoffice的缓存文件。
4、.switchpro:switchprowidget(多键开关应用)的缓存文件。
5、.ucdlres:UC迅雷的缓存文件。
6、baidu:掌上百度、百度输入法之类程序的缓存文件夹。
7、etouch:易行的缓存文件夹。
8、documents:Documents To Go的相关文件夹。
9、gameloft:gameloft游戏数据包存放的文件夹。
10、handcent:handcent(超级短信)数据文件夹。
11、handyCurrency:货币汇率相关的文件夹,装了handycalc(科学计算器)之后才会有。
12、ireader:ireader的缓存文件夹。
13、KingReader:开卷有益的缓存文件夹:下载的文件和应用都在这儿:删除时留意看清 14、LazyList:Applanet的缓存目录,慎重使用。
15、moji:墨迹天气的缓存目录。
16、MusicFolders:poweramp产生的缓存文件夹。
17、openfeint:openfeint的缓存文件夹。
18、Picstore:图片浏览软件建立的一个目录。
19、renren:人人网客户端的缓存文件夹。
20、screenshot:截屏图片保存的目录。
21、ShootMe:shootme截屏后图片文件保存的目录。
22、SmartpixGames:Smartpix Games出品游戏的缓存文件夹,比如Jewellust。
23、sogou:搜狗拼音输入法的随机缓存文件夹,可以删除。
24、SpeedSoftware:RE文件管理器的缓存文件夹。
25、TalkingFriends:talking tom(会说话的tom猫)录制的视频文件所保存的目录。
26、Tencent:腾讯软件的缓存目录,比如QQ。
(与上面的.QQ文件夹并不相同) 27、TitaniumBackup:钛备份备份的程序所保存的目录。
28、TunnyBrowser:感觉是海豚浏览器的缓存目录,但为什么叫这个名字?金枪鱼浏览器...。
. 29、UCDLFiles:UC迅雷下载文件的保存目录。
30、UCDownloads:UC浏览器下载文件缓存的保存目录。
31、VIE:Vignette(晕影相机)的缓存目录。
32、yd_historys:有道词典搜索历史的缓存目录 33、yd_speech:有道词典单词发音的缓存目录。
34、youmicache:删掉后还会自动生成,悠米广告的缓存目录,广告程序内嵌在其程序中。
35、Glu:Glu系列游戏的资料包存放地...
android手机里的照片在哪个文件夹里
展开全部 android手机里的照片在DCIM-Camera文件夹。
具体步骤: 1、先将手机与电脑相连,在电脑上找到可移动磁盘设备,点击打开。
2、然后在所有文件夹中找到DCIM文件夹,点击打开。
DCIM (Data Center Infrastructure management) 数据中心基础设施管理。
3、然后在DCIM文件夹中找到camera文件夹,就找到照片了。
扩展资料: 定义 1. DCIM (Data Center Infrastructure management) 数据中心基础设施管理 是将IT(信息技术)和设备管理结合起来对数据中心关键设备进行集中监控、容量规划等集中管理。
通过软件、硬件和传感器等,DCIM提供一个独立的管理平台,对数据中心IT设备和基础设施进行实时监控和管理。
3. 离散福镜像法:方程(MPIE)的矩量法是目前分析微带结构的主要方法之一.MPIE算法的核心是空域格林函数的求解.提出了二级离散复镜像法(DCIM)与表面波处理相结合的方法对空域格林函数进行计算.根据表面波的性质,提出了2种二级DCIM和表面波相结合的方案,分段比较两方案的... 4. 接口模块:Dominion 电脑接口模块 (DCIM),这是一种非常小的转接头,直接插入服务器的键盘、视频及鼠标连接端口。
5. DCIM(Data Center Integrated Management)数据中心集成管理 参考资料:DCIM-百度百科...
安卓手机照片一般存在哪个文件夹
展开全部 一般在存储在手机存储-DCIM-Camera下面 1、打开桌面上的文件管理器 2、选择手机存储 3、打开DCIM文件夹,根据不同品牌安卓手机的后期开发,文件夹名称可能不太一样,但一定是在DCIM目录文件夹里边。
4、一般来讲,由摄像头拍摄出的照片都会被存在这个地方 扩展资料: 截图生成的图片资源存储位置:手机存储-DCIM-ScreenShots文件夹下 由手机淘宝,美团生成的缓存图片存储位置:手机存储-Pictures 图片存储太多会占用很大内存空间,定期清理,可以便程序运行不卡顿,使用手机上手机管家之类的软件,定时清除缓存数据,手机那些上网浏览缓存下来的照片就会被删掉,也可以自己找出来删。
...
我在手机保存了一个图片在文件管理,怎么把这个图片改成壁纸?ZTE ...
在安卓系统中,手机拍完的视频有两个文件夹可存:1、存储在手机中的话:查看路径是:我的文件-sdcard0/设备存储-DCIM-Camera。
2、存储在存储卡中的话:查看路径是:我的文件-extSdcard/SD card-DCIM-Camera。
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
扩展资料智能手机文件夹包含的东西:1、\Storage\ProgramFiles(我们日常所安装的程序就是在这里)2、\windows\(手机系统文件夹)3、\Temp\(临时文件夹)4、\Storage\ApplicationData\Sounds(来电铃声的文件夹)5、\Storage\windows\startup(开机自动运行的程序所在文件夹)参考资料: 百度百科-安卓系统
...比如淘宝上的照片和微信、QQ上面的照片或者壁纸软件上的图片都...
微信中的照片、视频保存后无法在相册中显示,建议您:1.相册-查找“WeiXin”文件夹,查看是否有保存的照片或视频。
部分机器需要通过【视频】应用程序查找已保存的视频文件。
2.若在相册或视频中未找到,请进入我的文件-sdcard-tencent-MicroMsg-WeiXin文件夹中查找。
3.保存微信中其他图片、视频尝试。
4.关机重启机器。
5.将微信软件升级至最新版本。
安卓手机怎么把图片改成自动保存在本机而不是保存在SD卡
若将手机中的文件与外置SD卡互相转移,请操作:1.若将话机中的多媒体文件移动到SD卡中:我的文件-设备存储-查找需要移动的文件夹-更多-编辑-选择需要移动的文件-移动至,返回到external_sd-点击"移动到此处"即可。
反之亦然。
2.部分手机支持将软件移动到SD卡中,操作:设置-应用程序-应用程序管理器-打开某个软件-存储-选择已使用的存储空间-更改-选择SD卡(或设置-更多-应用程序管理器-选中某个程序-移动到SD卡)。
温馨提示:不是所有的程序均可移至到SD卡,具体根据所下载的软件决定。
安卓手机的系统文件在哪(文件名)
Android系统的开放,使其用户可以自己查看系统和SD卡中的文件夹。
就系统和SD卡中常见的目录代表什么意思,下面是一个较实用的总结:一、SD卡中1. /mnt/sdcard或者/sdcard这是Android手机中SD卡的文件夹路径,其中/mnt/sdcard/是android 2.2或更高版本所使用的,而/sdcard是android 2.1或早期版本的存储卡位置。
2. /mnt/sdcard/dcim或/sdcard/dcim这个DCIM文件夹是干什么用的,这里提示大家,一般数码相机都有DCIM文件夹,其中进入后Camera为手机摄像头拍摄的照片或视频存放位置。
同时在DCIM文件夹中还有.thumbnails这个目录,在Linux中开头为“.”的文件夹就是开头为“点”的文件夹是隐藏目录,这里面记录着手机SD卡图片的缩略图。
3. /mnt/sdcard/LOST.DIR或/sdcard/LOST.DIR这个LOST.DIR为SD卡扫描时发现的丢失文件,里面的文件用处不大,可以不用理会。
二、手机或平板电脑中1. /system/app 这里是android手机rom中的系统应用存放地,如果有Root权限可以将手机rom中自带的应用删除掉,这里面一般包含一个apk文件和odex文件,大家注意文件名一一对应。
2. /data/data 这里是每个安装过应用的用户文件存储位置,一般为设置文件、数据库或临时缓存文件,进入后以每个软件的package name包名来命名。
3. /dev 这里是Linux系统常规文件夹,里面的文件很多都是设备模拟的文件系统,一般用户无需理会。
4. /system/fonts 这里面保存着系统的字体,如果你有root权限,可以往里添加自己喜欢的字体,比如雅黑。
5. /system/framework 这里是android系统的框架,里面保存着系统核心程序或java类库,十分重要里面的任何文件几乎都不要做删除操作。
6. /media/audio 这里面保存着安卓系统默认的铃声,alarms是闹铃提醒的,notification是短信或提示音,ringtones是来电铃声,而ui是一些界面音效,比如键盘敲击声。
7./system/lib 里面保存的是系统底层类库,里面很多都是框架层的实现文件,一般以.so后缀结尾类似windows下的dll文件。
删除系统自带的软件有风险,请新手慎重!参考资料http://www.pc6.com/edu/53580.html
Android 怎样在应用程序中向文件里写入数据?
展开全部 Android 怎样在应用程序中向文件里写入数据?在AndroidManifest.xml中添加, ,解决!另外了解一下android的数据存储方式:文件流的读取,SQLite,Content Provider以及Preference.。
注:resource和assets中的文件用户方面是只可以读取不能够进行写的操作的。
Content Provider作为程序之间唯一共享数据途径,用在这里不是很合适。
所以,第一种方式,使用FileInputStream,FileOutputStreamdui类实现文件I/O操作,直接往手机中存储数据。
第二种方式,使用SQLite,通过SQLiteDatabase类中方法操作数据。
第三种方式,Preference用于存储简单数据类型的数据,一些设置信息的保存。
个人认为用在这里最合适。
它利用键值对存储的。
例:存储:SharedPreferences.Editor editor =sp.edit(); editor.putString(KEY_TEXT,"yonghu"); editor.commit();获取 :sp =getPreferences(MODE_PRIVATE); String result =sp.getString(KEY_TEXT,null)Android保存数据几种常用方法解析 它应用于手机中能够帮助我们实现许多需求。
比如今天为大家介绍的Android保存数据,就是其中一个比较重要的操作技巧。
Android组件相关概念总结Android传值方法细讲Android横竖屏切换正确实现方式分享Android开发环境相关配置概览Android NDK具体作用讲解对于我们所熟悉的大部分软件都有一个比较典型的特点,应用现有的数据根据不同的需求来得到相应的结果。
例如,我们最常用的Officeword、Excel、PowerPoint等办公软件,它们都是帮助我们完成某种特定的需求,同时由其所产生的数据或者文档又可以被其它软件所读取和做进一步的优化等等,在这个层面上可以看成是这些软件通过相同的文件标准来共享数据。
但是对于Android最大的不同点在于,其平台上的应用软件所存储的数据或者文件是私有,仅仅可以通过它自身才可以访问其所包含的数据资源。
那么基于这样的限制,该如何在Android平台上实现不同程序间的数据共享呢?答案非常简单 – 应用ContentProviders,这是建立在Android平台上用于定义统一的数据标准。
Android提供了针对不同数据类型的ContentProviders来满足各种需要。
例如:Image、Audio、Video和通讯录信息类等。
阅读下边的文档之前,最好先熟悉Content Providers的概念。
有了上边所提到Content Providers,接下来就要处理在共享文件过程中的存储环节了,这里有四种方法分别适用于不同情况的需求。
它们都各自有相应的优缺点,所以当开发者决定选择应用哪种方法之前,先要考虑当前所操作的情况是否适合于所选择的方法。
Preferences Files Databases Network 接下来将依次介绍上诉四个Android保存数据方法:Preferences从其保存数据的结构来分析,这是一个相对较轻量级的存储数据的方法。
类似于我们常用的ini文件保存软件初始化设置,同样在Android平台常用于存储较简单的参数设置。
例如,可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。
通过Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。
如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。
需要着重强调一点,无法直接在多个程序间共享Preferences数据(不包括使用Content Providers)。
通过一个实例来了解实际使用方法:import android.app.Activity; import android.content.SharedPreferences; public class Calc extends Activity { public static final String PREFS_NAME = "MyPrefsFile"; . . . . Override protected void onCreate(Bundle state){ super.onCreate(state); . . . . // Restore preferences SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean silent = settings.getBoolean("silentMode", false); setSilent(silent); } @Override protected void onStop(){ super.onStop(); // Save user preferences. We need an Editor object to // make changes. All objects are from android.context.Context SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("silentMode", mSilentMode); // Don't forget to commit your edits!!! editor.commit(); } } Files从这是第二种方法,可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。
同样在默认的状态下,文件是不能在不同的程序间共享。
写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这个方法会返回一个FileOutputStream对象。
读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的Java FileInputStream对象。
(注意:在其它程序中将无法应用相同的路径和文件名来操作文件)另外编译程序之前,在res/raw/tempFile中建立一个static文件,这样可以在程序中通过Resources.openRawResource (R.raw.myDataFile)方法同样返回一个Input...
转载请注明出处51数据库 » android 写个软件存储 文件 图片
地下群租房隔音差