Как конвертировать растровое изображение в 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аргументом.


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

4
это более точный ответ, учитывая, что ответ @Manoj устарел.
Райкуд

35

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

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

Bitmap bitmap;  
//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(drawable);

извините ... я не был серьезен
Абхи

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);
}

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);


0

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

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.