Вы на правильном пути, однако вы пытаетесь сделать две вещи одновременно: прочитайте файл и масштабируйте его до соответствующего размера.
Первым шагом является чтение файла в растровом изображении, которое немного больше, чем вам требуется, с помощью BitmapFactory.Options.inSampleSize, чтобы гарантировать, что вы не расходуете чрезмерную память для чтения большого растрового изображения, когда все, что вам нужно, это уменьшенное изображение или разрешение экрана изображение.
Второй шаг - вызвать Bitmap.createScaledBitmap (), чтобы создать новое растровое изображение с точным разрешением, которое вам требуется.
Убедитесь, что вы очистили временную битовую карту, чтобы восстановить ее память. (Либо выведите переменную из области видимости, и пусть GC справится с ней, либо вызовите .recycle () для нее, если вы загружаете много изображений и нехватаете памяти.)