Как конвертировать растровое изображение в Drawable в Android?

447

Как я могу преобразовать растровое изображение в Drawable?

Фарха Ансари
источник
2
Привет, я получил ответ на ваш вопрос перейдите по этой ссылке и получил правильный ответ, я делаю это. и я успех, я надеюсь, что вы получили успех. удачи androidsnippets.com/convert-bitmap-to-drawable
Зала Джанаксин
2
Вклад - отличный способ сказать спасибо ... :) Вклады с точки зрения предоставления ответов ... :)
Фархан
@ Фархан к ......
Абхи

Ответы:

265

Похоже, вы хотите использовать BitmapDrawable

Из документации:

Объект, Drawableкоторый оборачивает растровое изображение и может быть мозаичным, растянутым или выровненным. Вы можете создать BitmapDrawableпуть к файлу, поток ввода, инфляцию XML или Bitmap объект.

Грэм Дункан
источник
21
@Deprecated Используйте BitmapDrawable (Resources, Bitmap), чтобы убедиться, что объект рисования правильно установил целевую плотность.
Камиль Севиньи
79
бесполезный пост, бесполезный комментарий. было бы лучше, если бы вы добавили немного кода
voghDev
828

Попробуйте это, он преобразует изображение Bitmapтипа вDrawable

Drawable d = new BitmapDrawable(getResources(), bitmap);
Манодж
источник
Это то, что я ожидал!
лабиринт
147

Видя большое количество проблем с неправильным масштабированием растровых изображений при преобразовании в a BitmapDrawable, общий способ преобразования должен быть следующим:

Drawable d = new BitmapDrawable(getResources(), bitmap);

Без Resources reference, они bitmapмогут не отображаться должным образом, даже при правильном масштабировании. Здесь есть множество вопросов, которые можно решить, просто используя этот метод, а не прямой вызов только с bitmapаргументом.

Zulaxia
источник
12
По крайней мере, прокомментируйте, почему, если вы собираетесь голосовать против. Это совершенно правильный ответ, который содержит дополнительную информацию для решения проблем, которые могут возникнуть с другими предлагаемыми ответами. Drawables, сделанные непосредственно из растрового изображения, часто имеют ошибки масштабирования без ссылки getResources ().
Zulaxia
4
это более точный ответ, учитывая, что ответ @Manoj устарел.
Райкуд
35

Официальная растровая документация

Это пример того, как преобразовать растровое изображение в рисованный

Bitmap bitmap;  
//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(drawable);
Кристиана Чавес
источник
извините ... я не был серьезен
Абхи
5
Вы могли бы проголосовать вместо того, чтобы написать тот же ответ.
CopsOnRoad
31

Я использовал с контекстом

//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);
Самуэль Иван
источник
5
Дубликат ответа.
CopsOnRoad
19

Если у вас есть растровое изображение, и вы хотите использовать его в режиме рисования, как

Bitmap contact_pic;    //a picture to show in drawable
drawable = new BitmapDrawable(contact_pic); 
Пир Фахим Шах
источник
20
Это не рекомендуется сейчас. Теперь используйте конструктор BitmapDrawable (Resources, Bitmap).
Шлингель
1
@schlingel Он все еще работает нормально, и многие из нас используют его в наших проектах,
Пир Фахим Шах
2
Это хорошо для вас, но не помогает, когда Google в конечном итоге убивает этот конструктор, и вам нужно все переписать.
Шлингель
@schlingel да, но все еще кто-то в спешке использует это, и это делает работу
Пир Фахим Шах
11

Просто сделай это:

private void setImg(ImageView mImageView, Bitmap bitmap) {

    Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
    mImageView.setDrawable(mDrawable);
}
Joolah
источник
1
Не решение для того, что он просит
IIRed-DeathII
3

1) растровое изображение в Drawable:

Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
// mImageView.setDrawable(mDrawable);

2) отрисовывается до растрового изображения:

Bitmap mIcon = BitmapFactory.decodeResource(context.getResources(),R.drawable.icon_resource);
// mImageView.setImageBitmap(mIcon);
Sanjayrajsinh
источник
1

вот еще один:

Drawable drawable = RoundedBitmapDrawableFactory.create(context.getResources(), bitmap);
Солид Снейк
источник
0

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

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
Amosu Dona
источник