Convertir una cadena a uri a un mapa de bits para mostrar en un ImageView

He buscado por todas partes una solución a mi problema y parece que no puedo resolverlo. Estoy seguro de que es probablemente 1 o 2 líneas simples y espero que alguien pueda guiarme en la dirección correcta.

En mi aplicación, un usuario puede hacer clic en un botón que abrirá la galería. Una vez que seleccionen una imagen, la mostrarán en un ImageView dentro de mi aplicación. Esa parte está funcionando perfectamente bien. Originalmente, acabo de devolver un uri de la galería y lo mostraría directamente con esto:

imageView1.setImageURI(myUri);

Bueno, obviamente ahora me encuentro con el temido error "Fuera de la memoria" si el usuario vuelve a cargar esa página varias veces seguidas, así que tengo que limpiar mi código para reducir la imagen. Lo he hecho al implementar una clase de mapa de bits que convierte la imagen en un mapa de bits y la reduce para mí. Ahora, mi código de visualización de ImageView se ve así:

imageView1.setImageBitmap(bitmap1);

Esa parte está funcionando bien también. AQUÍ ESTÁ EL PROBLEMA:

Convierto la ruta uri en una cadena y luego la guardo en una SharedPreference. Esto es para que cuando el usuario sale de la aplicación y vuelve más tarde, la imagen que configuran se muestra automáticamente. Convierto el uri de esta manera:

...
selectedImageUri = data.getData();
String selectedImagePath;
selectedImagePath = getPath(selectedImageUri);
...

El antiguo método para recuperar la Cadena SharedPreference, convertirlo a uri y luego mostrar que funcionaba bien. (excepto el error de memoria insuficiente, por supuesto) Se veía así:

Uri myUri = Uri.parse(selectedImagePath);
imageView1 = setImageURI(myUri);

"selectedImagePath" es obviamente la cadena que recuperé de SharedPreference. Nuevamente, esto funcionó bien pero arrojaría el error si se recargara demasiadas veces.

La parte que NO ESTÁ TRABAJANDO ahora es cuando intento implementar la nueva conversión de mapa de bits para poder escalar el mapa de bits y no obtener el error de memoria. Aquí está el código para eso:

Uri myUri = Uri.parse(selectedImagePath)
Bitmap bitmap = getThumbnail(myUri);
imageView1.setImageBitmap(bitmap);

Esto no muestra nada. La elección de la imagen original muestra la imagen bien, pero cuando vuelvo a esta pantalla e intenta analizar la cadena del SharedPreference y luego convertirla al mapa de bits, no se muestra nada. El código para el método "getThumbnail" se tomó directamente de ESTE POST --->

¿Cómo obtener bitmap de un uri?

Es la tercera respuesta hacia abajo.

¿Alguien tiene alguna idea? Perdón por la publicación súper larga, pero prefiero explicar más mi problema que no dar suficiente información. Lo siento si esto fue respondido en otro lugar. He estado buscando otras preguntas durante horas y no he encontrado nada que resuelva mi problema.

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta