перетворення зображення зображуваних ресурсів у растрові


172

Я намагаюся використовувати те, Notification.Builder.setLargeIcon(bitmap)що робить растрове зображення. У мене є зображення, яке я хочу використати у своїй папці, що малюється, так як я перетворять це у растрове зображення?

Відповіді:


406

Ви, мабуть, маєте на увазі Notification.Builder.setLargeIcon(Bitmap), правда? :)

Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.large_icon);
notBuilder.setLargeIcon(largeIcon);

Це чудовий метод перетворення зображень ресурсів в Android Bitmaps.


2
Чому б не натиснути кнопку "Редагувати" і не вирішити питання? (Більше пропозиція щодо майбутнього - я вже зробив це для цього ... Я б запропонував відредагувати вашу відповідь, щоб не критикувати їх друкарські помилки. Я цього не роблю для вас.) В іншій замітці +1 за те, що ви робоча відповідь :)
ArtOfWarfare

1
Я не вважаю це правильним як загальна відповідь - принаймні, не з тих пір, як Android почав підтримувати векторні малюнки.
roberto tomás

після впровадження рішення я отримую це ...... E/CommitToConfigurationOperation: Malformed snapshot token (size): ... E/NotificationService: Not posting notification with icon==0: Notification(pri=0 contentView=null vibrate=null sound=content://settings/system/notification_sound defaults=0x0 flags=0x10 color=0x00000000 vis=PRIVATE) ... E/NotificationService: WARNING: In a future release this will crash the app:...
Bhuro

44
Drawable myDrawable = getResources().getDrawable(R.drawable.logo);
Bitmap myLogo = ((BitmapDrawable) myDrawable).getBitmap();

Оскільки API 22 getResources().getDrawable()застарілий, ми можемо використовувати наступне рішення.

Drawable vectorDrawable = VectorDrawableCompat.create(getResources(), R.drawable.logo,  getContext().getTheme());
Bitmap myLogo = ((BitmapDrawable) vectorDrawable).getBitmap();

1
Це говорить мені, що bitmapDravable не може бути вирішено до типу

Привіт @ 20Cents ви намагалися stackoverflow.com/questions/18218938 / ...
AndyW

Просто натисніть клавішу ctrl + shift + O, якщо прийом не може бути вирішений до типу для bitmapDravable. Ура!
портфоліобудівник

На жаль, таким чином виходить з ладу моє додаток!
Фахад Альдурайбі

getDrawable застаріло
Junior Mayhé

13
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_drawable);

Contextможе бути вашим поточним Activity.


2
а для векторних малюнків?
roberto tomás

9

Ось ще один спосіб перетворення Drawable ресурсу в Bitmap в android:

Drawable drawable = getResources().getDrawable(R.drawable.input);
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();

2
Чим ваш відрізняється від рішення AndyW? це теж саме!
Фахад Алдурайбі

6

Спочатку створіть зображення растрового зображення

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image);

тепер встановіть растровий файл у Icon Builder Icon ....

Notification.Builder.setLargeIcon(bmp);

0

У res/drawableпапці

1. Створіть нове Drawable Resources.

2. Ім'я вхідного файлу.

Новий файл буде створений всередині res/drawableпапки.

Замініть цей код всередині новоствореного файлу та замініть ic_action_backйого драйвовим іменем.

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/ic_action_back"
    android:tint="@color/color_primary_text" />

Тепер, ви можете використовувати його з Resource ID, R.id.filename.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.