Converter seqüência de caracteres para uri para bitmap para exibir em um ImageView

Eu olhei por toda parte para uma solução para o meu problema e simplesmente não consigo descobrir isso. Tenho certeza que provavelmente são 1 ou 2 linhas simples e espero que alguém possa me orientar na direção certa.

No meu aplicativo, um usuário pode clicar em um botão que abrirá a galeria. Depois de selecionar uma imagem, ela exibirá essa imagem em um ImageView no meu aplicativo. Essa parte está funcionando perfeitamente bem. Originalmente, eu apenas tinha que retornar um uri da galeria e eu mostraria diretamente isso com isto:

imageView1.setImageURI(myUri);

Bem, obviamente eu estou correndo agora para o temido erro "Out of Memory" se o usuário recarregar aquela página várias vezes seguidas, então eu estou tendo que limpar meu código para reduzir a imagem. Eu fiz isso implementando uma classe de bitmap que transforma a imagem em um bitmap e reduz a escala para mim. Agora, meu código de exibição do ImageView é assim:

imageView1.setImageBitmap(bitmap1);

Essa parte está funcionando bem também. AQUI ESTÁ O PROBLEMA:

Eu converto o caminho uri para uma string e depois salvo em uma SharedPreference. Isso ocorre quando o usuário sai do aplicativo e volta mais tarde, a imagem definida automaticamente é exibida. Eu converto o uri assim:

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

O método antigo para recuperar a String SharedPreference, convertê-la em uri e exibi-la estava funcionando bem. (exceto pelo erro de falta de memória, é claro).

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

"selectedImagePath" é obviamente a String que eu recuperei do SharedPreference. Novamente, isso funcionou bem, mas lançaria o erro se fosse recarregado muitas vezes.

A parte que não está funcionando agora é quando eu tento implementar a nova conversão de bitmap para que eu possa dimensionar o bitmap e não obter o erro de memória. Aqui está o código para isso:

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

Isso não exibe nada. A escolha da imagem original exibe a imagem bem, mas quando eu volto a essa tela e tento analisar a string da SharedPreference e depois convertê-la para o bitmap, nada é exibido. O código para o método "getThumbnail" foi obtido diretamente deste POST --->

Como obter o Bitmap de um Uri?

É a terceira resposta abaixo.

Alguém tem alguma ideia? Desculpe pelo post super longo, mas eu prefiro explicar o meu problema do que não dar informações suficientes. Desculpe se isso foi respondido em outro lugar. Tenho procurado outras perguntas durante horas e simplesmente não encontrei nada que resolva o meu problema.

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion