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