0
我的情況是:我有一個按鈕,用SD的圖像(此工作正常)更改我的父佈局的背景。然後,我喜歡將這些圖像保存在SharedPreference中,以允許用戶使用其背景圖像啓動我的應用程序,而不是我的默認背景圖像。我保存這個圖片的方式:從sharedpreferences中檢索已編碼的位圖
SharedPreferences.Editor editor = prefs.edit();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
yourSelectedImage.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
editor.putString("background", Base64.encodeToString(b, Base64.DEFAULT));
我找回在這條路上(該代碼是的onCreate):
prefs = getSharedPreferences("Mis preferencias",Context.MODE_PRIVATE);
String fondo = prefs.getString("background", "vacio");
if(!fondo.equals("vacio")){
byte[] b = Base64.decode(fondo, Base64.DEFAULT);
InputStream is = new ByteArrayInputStream(b);
Bitmap yourSelectedImage = BitmapFactory.decodeStream(is);
BitmapDrawable bd = new BitmapDrawable(getResources(), yourSelectedImage);
View view = findViewById(R.id.padre);
view.setBackgroundDrawable(bd);
}
是第一次使用sharedpreferences,並用base64圖像玩,所以我有點卡住了,如果我殺了我的應用程序並重新啓動,默認背景會出現,而不是自定義。任何幫助?感謝和抱歉我的英語。
當然!非常感謝iulia :)我一直在想這個問題很大並且隱藏起來;) – Genaut
沒有任何意義:D很高興幫助 –
考慮使用apply()http://developer.android.com/reference/android/content/SharedPreferences。 Editor.html#apply()取而代之,因爲它會將更改寫入文件異步 – AZ13