ドローアブルリソースイメージをビットマップに変換


172

Notification.Builder.setLargeIcon(bitmap)ビットマップ画像を取得するを使用しようとしています。ドローアブルフォルダーに使用したい画像があるので、それをビットマップに変換するにはどうすればよいですか?

回答:


406

もしかしてNotification.Builder.setLargeIcon(Bitmap)、そうでしょう?:)

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

これは、リソース画像をAndroidに変換する優れた方法ですBitmap


2
「編集」ボタンを押して質問を修正してみませんか?(将来のためのより多くの提案-私はすでにこの問題のためにそれをしました...私は彼らのタイプミスを批判しないようにあなたの答えを編集することを提案します。私はあなたのためにそれをしません。)別のメモでは、実用的な答え:)
ArtOfWarfare

1
私はこれが一般的な答えとして正しいは思いません—少なくともAndroidがベクタードローアブルのサポートを開始して以来。
robertotomás2016年

ソリューションを実装した後、私はこれを手に入れています...... 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
それはbitmapDrawableを型に解決できない私に語った

こんにちは@ 20Centsさん、stackoverflow.com
AndyW 2014年

ビットマップドローアブルのタイプに解決できない場合は、ctrl + shift + Oを押してください。乾杯!
ポートフォリオ

残念ながら、この方法でアプリがクラッシュします。
Fahad Alduraibi、2016

getDrawableは非推奨
JuniorMayhé2017年

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

Contextあなたの現在のことができますActivity


2
そして、ベクタードローアブルのために?
robertotomás2016年

9

DrawableリソースをAndroidのビットマップに変換する別の方法を次に示します。

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

2
あなたのAndyWソリューションとどう違うのですか?同じです!
Fahad Alduraibi、2016

6

最初にビットマップ画像を作成

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

通知ビルダーアイコンでビットマップを設定します...

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" />

これで、リソースIDとともに使用できますR.id.filename

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.