Моя ситуация такова: у меня есть кнопка, которая меняет фон моего родительского макета с изображением 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 рад помочь –
рассмотреть возможность использования() http://developer.android.com/reference/android/content/SharedPreferences. Editor.html # apply() вместо этого, поскольку он записывает изменения в файл асинхронный – AZ13