Як перетворити біт-карту в Dravable в android?


447

Як я можу конвертувати зображення Bitmap у Dravable?


2
Привіт, я отримав відповідь на ваше запитання, перейдіть за цим посиланням, і я отримав правильну відповідь. і я успіх, я сподіваюся, що ви отримали успіх. удачі androidsnippets.com/convert-bitmap-to-drawable
Zala Janaksinh

2
Вклад - це чудовий спосіб сказати подяку ... :) Внески в частині надання відповідей ... :)
Фархан

@Фархан к .......
Абхі

Відповіді:


265

Звучить так, як ви хочете використовувати BitmapDrawable

З документації:

Це Drawableобертає растрову карту і може бути викладено плиткою, розтягнутим або вирівняним. Ви можете створити BitmapDrawableз файлу шлях, вхідний потік, через інфляцію XML або з Bitmap об'єкта.


21
@ Попередньо Використовуйте BitmapDravable (Ресурси, Растрова карта), щоб переконатися, що графічний малюнок правильно встановив цільову щільність.
Каміль Севіньй

79
не корисна публікація, не корисний коментар. Було б краще, якщо ви додасте якийсь код
voghDev

827

Спробуйте це перетворити Bitmapзображення типуDrawable

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

Це я очікував!
лабіринт

147

Побачивши велику кількість проблем із неправильними масштабуваннями растрових зображень при перетворенні на a BitmapDrawable, загальним способом перетворення має бути:

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

Без цього Resources referenceпоказник bitmapможе не відображатися належним чином, навіть якщо його масштабувати правильно. Тут є чимало питань, які можна було б вирішити просто за допомогою цього методу, а не прямого виклику з лише bitmapаргументом.


12
Принаймні, прокоментуйте, чому, якщо ви збираєтесь голосувати проти. Це ідеально правильна відповідь і надає додаткову інформацію для вирішення питань, які можуть виникнути з іншими запропонованими відповідями. Малюнки, створені безпосередньо з растрової карти, часто мають помилки масштабування без посилання getResources ().
Зулаксія

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 так, але все-таки хтось із поспіхом використовує це, і це спрацює
Pir Fahim Shah

11

Просто зробіть це:

private void setImg(ImageView mImageView, Bitmap bitmap) {

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

1
Не рішення для того, що він просить
IIRed-DeathII

3

1) растровий малюнок до Dravable:

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

2) доступний для Bitmap:

Bitmap mIcon = BitmapFactory.decodeResource(context.getResources(),R.drawable.icon_resource);
// mImageView.setImageBitmap(mIcon);

1

ось ще один:

Drawable drawable = RoundedBitmapDrawableFactory.create(context.getResources(), bitmap);

0

прихована бітова карта для малювання в ескізному додатку з використанням коду

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.