2014-10-29 3 views
0

Im пытается сделать мое пользовательское уведомление похожим на это enter image description here Я нашел кучу подобных вопросов здесь, на SO и примерах в Интернете, но никто не помог мне.большое пользовательское уведомление в android

Вот мой код:

 RemoteViews bigView = new RemoteViews(mContext.getApplicationContext().getPackageName(), R.layout.notification_playback); 

     Intent i = new Intent(MainActivity.ACTION_PLAYER, null, mContext, MainActivity.class); 
     i.putExtra("CURRENT_TRACK", t); 
     i.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

     PendingIntent pi = PendingIntent.getActivity(mContext, 0, i, 0); 

     Notification n = new NotificationCompat.Builder(mContext) 
      .setContentTitle(t.getName()) 
      .setContentText(t.getArtistName()) 
      .setContentIntent(pi) 
      .setSmallIcon(R.drawable.ic_notification) 
      .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_launcher)) 
      .setOngoing(true) 
      .setContent(bigView) 
      .setWhen(System.currentTimeMillis()) 
      .build(); 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) 
      n.bigContentView = bigView; 

     NotificationManager notifyMgr = (NotificationManager)mContext.getSystemService(Context.NOTIFICATION_SERVICE); 
     notifyMgr.notify(0, n); 

Он появляется по умолчанию размера и стать размером я ожидаю только после долгого крана на нем.

Можно ли сделать это крупным размером сразу без длинного крана? И как я могу это сделать, если так? Спасибо!

+0

Здесь [другой вопрос] (http://stackoverflow.com/questions/21237495/create-custom-big-notifications), который может вам помочь. –

+0

@ TheRealBenjamin спасибо, но я уже пробовал. В нем говорится: «Хитрость заключается не в использовании setStyle(), а в ручной настройке поля BigContentView извещения после его создания, но, как вы видите, я делаю это правильно. –

+1

http://stackoverflow.com/questions/18367631/change-notification-layout – Praveen

ответ

0

Итак, что я понял. Уведомление отображается расширенным, если оно относится к уведомлениям. В противном случае, с обычной высоты, пользователь может перетащить его вниз, чтобы развернуть. Чтобы сделать это в верхней части уведомлений, вы можете использовать .setPriority(Notification.PRIORITY_MAX) в Builder.

+0

BTW, если вы не установите приоритет, а устройство подключено к вашему ПК, скорее всего, уведомление 'Connected as media device 'будет в верхней части поэтому вы всегда будете видеть, что он не расширен. –

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