[解決済み] vector drawable から Bitmap を取得する
2022-04-26 03:23:54
質問
私のアプリケーションでは、通知用の大きなアイコンを設定する必要があります。 LargeIconはBitmapでなければならず、私のdrawableはベクター画像です(Androidの新機能、以下を参照)。 このリンク ) 問題は、ベクター画像であるリソースをデコードしようとすると、nullが返されることです。
以下はコードのサンプルです。
if (BitmapFactory.decodeResource(arg0.getResources(), R.drawable.vector_menu_objectifs) == null)
Log.d("ISNULL", "NULL");
else
Log.d("ISNULL", "NOT NULL");
このサンプルでは、R.drawable.vector_menu_objectifs を "normal" 画像、例えば png に置き換えると、結果は null ではありません(正しいビットマップが表示されます)。 何か見落としがあるのでしょうか?
解決方法は?
APIで確認:17, 21, 23
public static Bitmap getBitmapFromVectorDrawable(Context context, int drawableId) {
Drawable drawable = ContextCompat.getDrawable(context, drawableId);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
drawable = (DrawableCompat.wrap(drawable)).mutate();
}
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return bitmap;
}
UPDATEです。
プロジェクトgradle。
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0-alpha5'
}
モジュールgradle。
android {
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
vectorDrawables.useSupportLibrary = true
}
...
}
...
関連
-
[解決済み】ビットマップを保存する場所について
-
[解決済み] DrawableをBitmapに変換する方法は?
-
[解決済み] Android XML drawable ファイルに円形を定義する方法を教えてください。
-
telnet'が内部コマンドまたは外部コマンドとして認識されない 解決方法
-
Androidの美しいSeekBarスタイルのカスタマイズ
-
超シンプルなアンドロイドのタイムディレイ機能
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] アンドロイドでビットマップをDrawableに変換する方法は?
-
[解決済み] アイコンのミップマップ描画可能
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DrawableをBitmapに変換する方法は?
-
AndroidエミュレーターのADBサーバーがACKしない問題
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
android block certificate validation CertPathValidatorException: 認証パスのトラストアンカーが見つかりません
-
Android TextViewにandroid:ellipsize=endのバグがある。
-
Android ProgressBarのスタイルカラーを変更する
-
Androidの美しいSeekBarスタイルのカスタマイズ
-
超シンプルなアンドロイドのタイムディレイ機能
-
Android Studio常见错误之:Rendering Problems/The following classes could not be instantiated
-
Android studio 制約レイアウト ConstraintLayout