我正在尝试使用带有位图图像的Notification.Builder.setLargeIcon(bitmap)
。我有我想在可绘制文件夹中使用的图像,那么如何将其转换为位图?
答案 0 :(得分:390)
你可能意味着Notification.Builder.setLargeIcon(Bitmap)
,对吗? :)
Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.large_icon);
notBuilder.setLargeIcon(largeIcon);
这是将资源图片转换为Android Bitmap
的绝佳方法。
答案 1 :(得分:43)
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();
答案 2 :(得分:13)
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_drawable);
Context
可以是您当前的Activity
。
答案 3 :(得分:9)
这是另一种将Drawable资源转换为android中的Bitmap的方法:
Drawable drawable = getResources().getDrawable(R.drawable.input);
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
答案 4 :(得分:6)
首先创建位图图像
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image);
现在在Notification Builder Icon ....中设置位图。
Notification.Builder.setLargeIcon(bmp);
答案 5 :(得分: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
一起使用。