将可绘制资源图像转换为位图

时间:2012-01-03 19:08:19

标签: android bitmap

我正在尝试使用带有位图图像的Notification.Builder.setLargeIcon(bitmap)。我有我想在可绘制文件夹中使用的图像,那么如何将其转换为位图?

6 个答案:

答案 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一起使用。