在哪里保存图像 - android

时间:2014-03-08 15:53:07

标签: android image save

我正在开发Android应用程序,用户从库中选择图标图像。我需要保存该图像(位图),因此我可以在重新启动应用程序时使用它。

非常感谢任何简单的例子。

感谢。

3 个答案:

答案 0 :(得分:3)

使用以下代码保存图片:

void saveImage() {

File myDir=new File("/sdcard/saved_images");
myDir.mkdirs();

String fname = "Image.jpg";
File file = new File (myDir, fname);
if (file.exists ()) file.delete (); 
try {
       FileOutputStream out = new FileOutputStream(file);
       finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
       out.flush();
       out.close();
       final AlertDialog alertDialog = new AlertDialog.Builder(this).create();  
            alertDialog.setTitle("Save");  
            alertDialog.setMessage("Your drawing had been saved:)");  
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() {  
            public void onClick(DialogInterface dialog, int which) { 
                return;  
            }  
        });  
        alertDialog.show();
} catch (Exception e) {
       e.printStackTrace();
}
}

从sdcard中回溯图像:

让你从Import.java Acitivty中的sdcard中检索图像:

File file = new File(getExternalFilesDir(null), "MyFile.jpg");

因此,一旦将图像放在File对象中,您只需将其路径放在将用作结果数据的Intent上,该结果将被发送回“调用者”活动。在你的“被叫”活动的某些方面,你应该这样做:

Intent resultData = new Intent();
resultData.putExtra("imagePath", file.getAbsolutePath());
setResult(RESULT_OK,returnIntent);     
finish();

你的方法onActivityResult:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // TODO Auto-generated method stub
  super.onActivityResult(requestCode, resultCode, data);

  if(requestCode==RESULT_OK)
  {
    String path = data.getStringExtra("imagePath");           
  }
}

就是这样! 希望它有所帮助:)

答案 1 :(得分:0)

答案 2 :(得分:0)

使用SharedPreferencesBase64字符串表示形式存储图像。

Bitmap imageBitmap = BitmapFactory.decodeStream(stream);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream );   
byte[] byte = byteArrayOutputStream.toByteArray(); 
String encodedImage = Base64.encodeToString(byte , Base64.DEFAULT);

SharedPreferences sharedPreferences = getSharedPreferences("SharedPreferencesName", <Mode>);
SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences .edit();
sharedPreferencesEditor.putString("image_data", encodedImage).commit();

在检索时,将Base64表示转换回Bitmap

SharedPreferences sharedPreferences = getSharedPreferences("SharedPreferencesName", <Mode>);
String encodedImage = sharedPreferences.getString("image_data", "");

if( !encodedImage.equals("") ){
    byte[] byte = Base64.decode(encodedImage , Base64.DEFAULT);
    Bitmap bitmap = BitmapFactory.decodeByteArray(byte, 0, byte.length);
    imageView.setImageBitmap(bitmap);    
}