2016-05-16 54 views
-1

我想在android中將圖標轉換爲位圖對象。如何在Android中將圖標轉換爲位圖?

我的目標是從通知圖標轉換爲位圖。

我該怎麼辦?

謝謝你所有的答案!

+0

感謝所有。我用Reflection方法(loadDrawableInner)解決了這個問題。 – user212942

+0

我不認爲這個問題是一個完整的重複,儘管類似。不同之處在於'Icon'不是'Drawable',但是你可以使用'icon.loadDrawable(context)'''Icon'獲得'Drawable'' – rintcius

回答

1

希望這有助於

Bitmap bitmapIcon = BitmapFactory.decodeResource(getResources(), R.drawable.icon); 
+0

感謝您的回答。但是,我想將通知對象中的圖標轉換爲位圖。 – user212942

1

你可以使用這個類。另外我通常使用這個代碼。

public static Bitmap drawableToBitmap (Drawable drawable) { 
Bitmap bitmap = null; 

if (drawable instanceof BitmapDrawable) { 
    BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; 
    if(bitmapDrawable.getBitmap() != null) { 
     return bitmapDrawable.getBitmap(); 
    } 
} 

if(drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) { 
    bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); // Single color bitmap will be created of 1x1 pixel 
} else { 
    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; 

}

+0

感謝您的回答。但Notification.getSmallIcon()返回的不是Drawable,而是Icon對象... – user212942