드로어 블 리소스 이미지를 비트 맵으로 변환


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
나는 이것이 안드로이드가 벡터 드로어 블을 지원하기 시작한 이래로 일반적인 대답으로 옳다고 생각 하지 않습니다.
roberto tomás

솔루션을 구현 한 후 나는 이것을 ... 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:...
얻는다

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/questions/18218938/...
AndyW

bitmapDrawable 유형으로 해석 할 수없는 경우 ctrl + shift + O를 누르면됩니다. 건배!
portfoliobuilder

불행히도이 방법으로 내 앱이 충돌합니다!
Fahad Alduraibi

getDrawable은 더 이상 사용되지 않습니다
Junior Mayhé

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

Context당신의 현재가 될 수 있습니다 Activity.


2
그리고 벡터 드로어 블을 위해?
roberto tomás

9

안드로이드에서 Drawable 리소스를 비트 맵으로 변환하는 또 다른 방법은 다음과 같습니다.

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

2
AndyW 솔루션과 어떻게 다릅니 까? 동일합니다!
Fahad Alduraibi

6

먼저 비트 맵 이미지 생성

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

이제 Notification Builder Icon에서 비트 맵을 설정합니다 ...

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.