Загрузка чертежа с SD-карты

Я пытаюсь загрузить png-изображение в виде рисунка с SD-карты моего устройства. Я использую следующую функцию, но она не работает:

public Drawable getDrawable()
{
return new BitmapDrawable(imagePath);
}

Путь к изображению: mnt/sdcard/MyFolder/image.png

Приложение вылетает, когда я пытаюсь вызвать этот метод, как мне загрузить изображение png, расположенное на моей SD-карте, и преобразовать его в объект Drawable?


person idish    schedule 29.09.2012    source источник
comment
Посмотрите на decodeFile developer.android.com/ ссылка/Android/графика/   -  person IAmGroot    schedule 29.09.2012
comment
@Doomsknight Можете ли вы привести пример, пожалуйста? Я искал сейчас BitmapFromFile, но не смог найти никакой информации об этом.   -  person idish    schedule 29.09.2012
comment
@Doomsknight Понятно, поэтому мне придется впоследствии преобразовать растровое изображение в объект рисования?   -  person idish    schedule 29.09.2012
comment
Рад, что это помогло. Я добавил ответ, чтобы помочь другим, если вы хотите отметить его, пожалуйста :)   -  person IAmGroot    schedule 29.09.2012


Ответы (2)


На самом деле существует конструктор BitmapDrawable прямо из пути к файлу. Метод, который вы используете, устарел. Пытаться:

Drawable myDrawable = new BitmapDrawable(getResources(), pathName);

Если это не работает, попробуйте получить растровое изображение и создать из него рисунок:

Растровое изображение можно создать с помощью decodeFile

Вы можете использовать его следующим образом:

Bitmap myBitmap = BitmapFactory.decodeFile(pathName);

Затем вы можете использовать растровое изображение для рисования и т. д.

преобразовать растровое изображение в доступное для рисования использование

Drawable myDrawable = new BitmapDrawable(getResources(), myBitmap);

Посмотрите здесь (растровые изображения) и Здесь (Bitmap Drawables)для получения дополнительной информации.

person IAmGroot    schedule 29.09.2012
comment
Первый фрагмент кода должен быть = new BitmapDrawable(), так как это конструктор. - person John J Smith; 12.12.2013
comment
@JohnJSmith Изменено. :) - person IAmGroot; 12.12.2013

я просто делаю так

public Drawable getDrawableFromPath(String filePath) {
    Bitmap bitmap = BitmapFactory.decodeFile(filePath);
    //Here you can make logic for decode bitmap for ignore oom error.
    return new BitmapDrawable(bitmap);
}
person Kalpesh    schedule 28.12.2012