首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

图片保留到sd卡

2012-08-22 
图片保存到sd卡???import java.io.FileNotFoundExceptionimport java.io.FileOutputStreamimport java.i

图片保存到sd卡


图片保留到sd卡
?

?

?import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;

/**
?* This Activty shows how to save an image (Bitmap) to the filesystem, with FileOutputStream object
?* @author FaYnaSoft Labs
?*
?*/
public class Main extends Activity {
?private Bitmap bitmap;

??? @Override
??? public void onCreate(Bundle savedInstanceState) {
??????? super.onCreate(savedInstanceState);
??????? setContentView(R.layout.main);

??????? bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

??????? FileOutputStream fos = null;
??????? try {
??????????? fos = openFileOutput("image", Context.MODE_PRIVATE);
??????????? bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
??????? } catch (FileNotFoundException e) {
??????? } finally {
??????????? if (fos != null) {
??????????????? try {
??????????????????? fos.flush();
??????????????????? fos.close();
??????????????? } catch (IOException e) {
??????????????? }
??????????? }
??????? }
??? }
}

1 楼 twins-wolf 2011-03-23   这个只能存储到应用的/data/data/com.faynasoftlabs.tutorial.android.imagesavingexample/files里,  而不是sd卡中,这是部分log
===========================================
03-23 13:56:07.639: WARN/System.err(5972): java.lang.IllegalArgumentException: File /mnt/sdcard/appMessage.png contains a path separator
03-23 13:56:07.639: WARN/System.err(5972):     at android.app.ContextImpl.makeFilename(ContextImpl.java:1693)
03-23 13:56:07.639: WARN/System.err(5972):     at android.app.ContextImpl.openFileOutput(ContextImpl.java:414)
03-23 13:56:07.639: WARN/System.err(5972):     at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:158)
===========================================
可以实现的方案如下:
用InputStream is=this.getResources().openRawResource(R.drawable.icon);
再讲InputStream 转成 byte[],网上有方法
最后将这个byte[]写入到sd卡中去。 欢迎指正twins-wolf@163.com

热点排行