`
kylines
  • 浏览: 86965 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

android如何往SDCard中存取图片

阅读更多
引用
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.graphics.Bitmap;
import android.os.Environment;
import android.util.Log;

/**
 * 保存图片的类
 * 
 * 
 */
public class SaveBitmap {

	private final static String CACHE = "/css";

	/**
	 * 保存图片的方法 保存到sdcard
	 * 
	 * @throws Exception
	 * 
	 */
	public static void saveImage(Bitmap bitmap, String imageName)
			throws Exception {
		String filePath = isExistsFilePath();
		FileOutputStream fos = null;
		File file = new File(filePath, imageName);
		try {
			fos = new FileOutputStream(file);
			if (null != fos) {
				bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);
				fos.flush();
				fos.close();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 获取sd卡的缓存路径, 一般在卡中sdCard就是这个目录
	 * 
	 * @return SDPath
	 */
	public static String getSDPath() {
		File sdDir = null;
		boolean sdCardExist = Environment.getExternalStorageState().equals(
				android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
		if (sdCardExist) {
			sdDir = Environment.getExternalStorageDirectory();// 获取根目录
		} else {
			Log.e("ERROR", "没有内存卡");
		}
		return sdDir.toString();
	}

	/**
	 * 获取缓存文件夹目录 如果不存在创建 否则则创建文件夹
	 * 
	 * @return filePath
	 */
	private static String isExistsFilePath() {
		String filePath = getSDPath() + CACHE;
		File file = new File(filePath);
		if (!file.exists()) {
			file.mkdirs();
		}
		return filePath;
	}
	/**
	 * 获取SDCard文件
	 * 
	 * @return Bitmap
	 */
	public static Bitmap getImageFromSDCard(String imageName) {
		String filepath = getSDPath() + CACHE  + "/" + imageName;
		File file = new File(filepath);
		if (file.exists()) {
			Bitmap bm = BitmapFactory.decodeFile(filepath);
			return bm;
		}
		return null;
	}
}
分享到:
评论

相关推荐

    Android数据存入SDCard中

    例如,Android Q(API级别29)引入了 scoped storage,限制了对SDCard的直接访问,此时你需要使用`MediaStore` API或者请求`MANAGE_EXTERNAL_STORAGE`权限来存取文件。 总之,Android应用可以通过适当地请求权限和...

    Android数据存储(内置sdcard1)

    在描述中提及的“Android数据存储(内置sdcard)案例1”,可能是一个实际的代码示例,展示了如何在内部存储中创建和读取文件。通常,我们可以使用`getFilesDir()`或`getCacheDir()`方法获取内部存储的文件路径,然后...

    Android中File存取数据的基本步骤.pdf

    以下是对Android中使用File存取数据的详细解释: 1. **创建文件对象** 创建文件对象是操作文件的第一步。通过File类的构造函数,指定文件的路径和名称来实例化一个File对象。例如: ```java File file = new ...

    六、把文件存放在SDCard

    在Android系统中,外部存储设备通常被称为SDCard(尽管它可能并不一定是物理的SD卡),是用户存储多媒体文件、应用数据和其他大文件的理想位置。本文将深入探讨如何在Android应用程序中将文件存放到SDCard,并提供...

    Android数据库SD卡创建和图片存取操作

    本篇将详细介绍如何在Android中进行数据库的创建以及在SD卡上进行图片的存取操作。 首先,我们需要创建一个数据库。在Android中,通常我们会使用SQLiteOpenHelper这个抽象类的子类来帮助我们管理数据库的生命周期。...

    Android ThinkAndroid开发框架.zip

    具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能, 在android中加载的图片的时候,对oom的问题,和对加载图片错位的问题都轻易解决。...

    查看手机内存状态和sdcard卡的内存状态

    在Android系统中,了解手机内存状态以及SDCard(外部存储卡)的状态对于开发者和普通用户来说都至关重要。这有助于优化应用程序性能,管理存储空间,确保设备的流畅运行。以下是一些关于查看和理解这些状态的知识点...

    Android 常用六大框架

    (6) 图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。 (7) 配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference...

    SDcard数据访问SAX解析XML文件

    本话题将深入探讨如何在Android系统中利用SAX(Simple API for XML)解析XML文件,并将这些数据存取到SD卡上。 首先,让我们理解什么是SAX解析器。SAX是一种事件驱动的XML解析方法,它不创建整个XML文档树,而是...

    Android项目源码ThinkAndroid开发框架.zip

    具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能, 在android中加载的图片的时候,对oom的问题,和对加载图片错位的问题都轻易解决。...

    Android emulator 谷歌手机模拟器入门

    创建完成后,通过`emulator-sdcard`参数将SD卡镜像文件链接至模拟器,实现数据的存取。 #### 文件传输与ADB工具 要实现PC与模拟器之间的文件传输,ADB(Android Debug Bridge)工具不可或缺。ADB提供了丰富的功能,...

    浙江大学-智能手机软件开发本科课程-2010年夏课件与录像-Android教程05-应用编程.ppt

    6. **SDCard存取** 访问SDCard需要在AndroidManifest.xml中声明相应的权限,如`<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">`。在进行读写前,需检查SDCard的状态,确保其已挂载且...

    FileIO.rar_FileIo_andriod driver_android_android 文件_android 读

    Android设备上的文件通常存储在以下几个主要目录中:`/data/data/<package_name>`(应用私有目录)、`/sdcard`(外部存储,用户可读写)、`/mnt`(挂载点)等。 **文件读取**: 在Android中,可以使用`java.io`和`...

    Android教程05-应用编程

    在Android应用编程中,了解如何有效地管理数据存储是至关重要的。本教程主要涵盖了四种主要的数据存取方式:SharedPreferences、文件、SQLite数据库以及ContentProvider。这些方法各有特点,适用于不同的应用场景。 ...

    Android 资料, 大约十来篇,网上收集

    Android模拟器入门(sdcard配置).pdf Android内核的简单分析.pdf Android数据存取之Preferences.pdf Android系统架构.pdf Android应用框架原理与程序设计.pdf Binder机制的各个部分.pdf Windows上建立AndRoid开发环境...

    Android 开发之 SD卡的使用源码.rar

    了解以上知识后,开发者可以灵活地在Android应用程序中管理和操作SD卡,实现文件的存取、备份、分享等功能。需要注意的是,不同的Android版本可能有不同的存储策略和权限管理,因此在编写代码时要考虑版本兼容性,...

    Android安卓系统下软件装到SD卡.pdf

    4. 使用ln命令创建符号链接,将应用程序的数据目录链接到SD卡上,例如:`ln -s /data/app /sdcard/Android/data/`。 5. 重启手机,使用新安装的应用程序,检测是否可以正常运行。 在进行这些操作时,需要注意的是,...

    【国开搜题】国家开放大学 一网一平台 Android网络开发技术12 期末考试押题试卷.docx

    其中,使用Android SDK中集成的ProGuard工具是常用的混淆手段之一,它能够有效地混淆Java代码。而“打乱功能代码的流程”和“通过Dalvik字节码加密”虽然也可以实现一定的混淆效果,但并不是标准的混淆手段。至于...

    全球眼android系统手机客户端软件安装使用手册.doc

    1. 将Android设备(如XT800)连接到电脑,设置USB连接模式为内存卡存取。 2. 电脑中会显示一个新的可移动磁盘,这是手机的SDCARD存储。 3. 在磁盘中创建一个新文件夹,如“software”,并把全球眼客户端软件拷贝到...

Global site tag (gtag.js) - Google Analytics