如何存储在Android上的共享偏好的图像路径?(How to store an image pat

2019-09-17 15:02发布

我已经得到了我想要的共享偏好来存储图像路径。

  1. 如何存储共享偏好里面的路径?
  2. 我怎样才能检索来自共享偏好图像路径?

Answer 1:

所有你需要做的是,你的图像转换成它的Base64编码字符串表示:

Bitmap realImage = BitmapFactory.decodeStream(stream);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
realImage.compress(Bitmap.CompressFormat.JPEG, 100, baos);   
byte[] b = baos.toByteArray(); 

String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
textEncode.setText(encodedImage);

SharedPreferences shre = PreferenceManager.getDefaultSharedPreferences(this);
Editor edit=shre.edit();
edit.putString("image_data",encodedImage);
edit.commit();

然后,检索时,将其转换回位图:

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);
    imageConvertResult.setImageBitmap(bitmap);
}

但是,我要告诉你,Base64编码的支持是最近才列入API8。 要定位较低版本的API,您需要先添加它。 幸运的是, 这家伙已经有了所需要的教程。

此外,我要告诉你,这是一个复杂的过程,并shareprefrence只使用存储量小,如用户名和密码数据的那这样,你也可以用这样的方法:

(从SD卡)存储图像路径进入共享偏好等this--

SharedPreferences shre = PreferenceManager.getDefaultSharedPreferences(this);
Editor edit=shre.edit();
edit.putString("imagepath","/sdcard/imh.jpeg");
edit.commit();

加载您的图片路径,你可以使用这个

final SharedPreferences sharedPreference = getSharedPreferences(
                "pref_key", MODE_PRIVATE);
        if (sharedPreference.contains("imagepath")) {
            String mFilePath = sharedPreference.getString(imagepath,
                    null);
        }

让你的路径后,您可以使用:

File imgFile = new  File(mFilePath);
if(imgFile.exists()){

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
    myImage.setImageBitmap(myBitmap);

}


Answer 2:

存储的路径作为一个字符串

Editor e = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit();
e.putString("your_preference", your_path.toString());
e.commit();

这也被问过很多时间,因此-1



Answer 3:

final SharedPreferences sPreference = getSharedPreferences(
                "pref_key", MODE_PRIVATE);
        final Editor spEditor = sPreference.edit();
        spEditor.putString("img_path", mFileName);
        spEditor.commit();

上面的代码是保存图像路径到共享PREF有用。 现在,检索图片的路径,使用如下:

final SharedPreferences sharedPreference = getSharedPreferences(
                "pref_key", MODE_PRIVATE);
        if (sharedPreference.contains("img_path")) {
            mFileName = sharedPreference.getString(img_path,
                    null);
        }


文章来源: How to store an image path in the shared preferences in android?