从图库中选择后如何存储imageview

时间:2017-05-13 18:43:33

标签: android sharedpreferences gallery

我正在创建一个用户个人资料,用户可以更改他的个人资料图片,但我想要存储所选图像,而不是在我去另一个活动后消失,我已经从图库部分选择了图像。我知道这与shared preferences或位图编码有关,但我似乎无法弄清楚如何去做。

我怎么能完全这样做,谢谢你。

1 个答案:

答案 0 :(得分:0)

首先使用此函数隐藏您进入Base64字符串的图像路径

public static String getFileToByte(String path){
  Bitmap bm = null;
  ByteArrayOutputStream baos = null;
  byte[] b = null;
  String encodeString = null;
   try{
    bm = BitmapFactory.decodeFile(path);
    baos = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    b = baos.toByteArray();
    encodeString = Base64.encodeToString(b, Base64.DEFAULT);
  }catch (Exception e){
    e.printStackTrace();
  }
  return encodeString;
 }

将Base64保存在SharedPreferences

    SharedPreferences shre = PreferenceManager.getDefaultSharedPreferences(this);
Editor edit=shre.edit();
edit.putString("image_data",getFileToByte("/path/to/image.jpg"));
edit.commit();

在需要时在IMAGEVIEW中显示

    SharedPreferences shre = PreferenceManager.getDefaultSharedPreferences(this);
String previouslyEncodedImage = shre.getString("image_data", "");

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