2016-07-28 2 views
1

Я работаю над приложением. В этом приложении я получаю другую информацию о приложении. И информационное шоу в построителе уведомлений. Я получаю значок другого приложения и хочу показать его в уведомлении. Но информация о получении содержит изображение с возможностью рисования.Установите значок Drawable другого приложения в построитель уведомлений

Итак, как я могу показать изображение, пригодное для рисования, в уведомлении. Вот мой пример кода.

String packageName=appSetting.getHeavyDrainingAppName(); 

ApplicationInfo app = getPackageManager().getApplicationInfo(packageName, PackageManager.GET_META_DATA); 

int iconId = ......???? 



NotificationCompat.Builder mBuilder = 
          new NotificationCompat.Builder(context) 
            .setSmallIcon(iconId) 
            .setContentTitle(getResources().getString(R.string.heavy_drain_text)) 
            .setContentText("Tap to stop") 
            .setOngoing(true); 

ответ

3

Существует несколько точек об этом вопросе:

1:

Вы можете установить LargeIcon из Drawable (вместо идентификатора ресурса), как следующий

Drawable icon = getActivity().getPackageManager().getApplicationIcon(packageName); 

      Bitmap bitmap = ((BitmapDrawable)icon).getBitmap(); 

      NotificationCompat.Builder mBuilder = 
        new NotificationCompat.Builder(context) 
          .setLargeIcon(bitmap) 
          .setContentTitle("hahah") 
          .setContentText("Tap to stop") 
          .setOngoing(true); 

2:

Если вам нужно установить SmallIcon в API ниже 23, вам нужно будет установить идентификатор ресурса, такой как R.drawable.your_resource. NotificationCompat.Builder не позволяет использовать Drawable s or Bitmaps in setSmallIcon() `.

третий:

к счастью, поддержка была расширена до Icon типа на setSmallIcon() в версии 23+, используя Notification.Builder, как следующее:

Drawable icon = getActivity().getPackageManager().getApplicationIcon(packageName); 

      Bitmap bitmap = ((BitmapDrawable)icon).getBitmap(); 

      Notification.Builder mBuilder = 
        new Notification.Builder(context) 
          .setSmallIcon(Icon.createWithBitmap(bitmap)) 
          .setLargeIcon(bitmap) 
          .setContentTitle("hahah") 
          .setContentText("Tap to stop") 
          .setOngoing(true); 
+0

ли это решить проблему? –

+0

Не его не работает для меня ... –

+0

В какой части вы пробовали? Потому что я написал, что вы можете использовать setSmallIcon с Drawable или Bitmap, в версии 23 версии. –

 Смежные вопросы

  • Нет связанных вопросов^_^