web-dev-qa-db-ja.com

描画可能なリソース画像をビットマップに変換する

私はビットマップイメージをとるNotification.Builder.setLargeIcon(bitmap)を使用しようとしています。使用したい画像が自分の描画可能なフォルダにあるのですが、それをビットマップに変換するにはどうすればよいですか。

164
tyczj

あなたはおそらくNotification.Builder.setLargeIcon(Bitmap)を意味しますね。 :)

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

これは、リソースイメージをAndroidのBitmapsに変換する優れた方法です。

390
poitroae
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();
43
AndyW
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_drawable);

Contextは、現在のActivityになります。

13
aromero

これは、AndroidでDrawableリソースをビットマップに変換するもう1つの方法です。

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

最初にビットマップイメージを作成する

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

notification Builderアイコンにビットマップを設定するようになりました。

Notification.Builder.setLargeIcon(bmp);
6
Ravi Makvana

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と一緒に使用できます。