You can add only Boolean, Float, Int, Long, String values in SharedPreference. But one thing you can do is converting Bitmap to Base64 String. And after retrieving it from SharedPrefrence convert it to Bitmap.
Use following method to convert bitmap to byte array:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
to encode base64 from byte array use following method
String encoded = Base64.encodeToString(b, Base64.DEFAULT);
And Save it to SharedPrefrence.
Now assuming that your image data is in a String called encoded , the following should do give you BitMap from Base64 string:
byte[] imageAsBytes = Base64.decode(encoded.getBytes(), Base64.DEFAULT);
ImageView image = (ImageView)this.findViewById(R.id.ImageView);
image.setImageBitmap(BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length));
This may help you. Try and please let me know !