如何在安卓系统中将图标转换为位图?

3

我想在安卓上将一个图标转换为位图对象。

我的目标是从通知图标转换为位图。

我该怎么做呢?

谢谢你们的回答!


谢谢大家。我用反射方法(loadDrawableInner)解决了问题。 - user212942
我认为这个问题虽然相似,但并不完全重复。区别在于Icon不是一个Drawable,但你可以使用以下方法从Icon获取一个Drawableicon.loadDrawable(context) - rintcius
使用以下代码: Icon icon = notification.getSmallIcon(); Bitmap bitmap = icon.loadDrawable(context); - Zeeshan Ali
2个回答

3
希望这可以帮到您。
Bitmap bitmapIcon = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

1
谢谢您的回答。但是,我想将通知对象中的图标转换为位图。 - 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;

}


谢谢你的回答。但是,Notification.getSmallIcon()返回的不是Drawable而是Icon对象... - user212942

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接