2016-05-16 56 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