android.app.Notification#BigPictureStyle ( )源码实例Demo

下面列出了android.app.Notification#BigPictureStyle ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

/**
 * Gets Notification.BigPictureStyle with 2 lines text.
 *
 * @param message Push notification Bundle.
 * @param bigPicture Bitmap for BigPictureStyle notification.
 * @param title String with title for push notification.
 * @param messageText String with text for push notification.
 * @return Notification.BigPictureStyle or null.
 */
@TargetApi(16)
static Notification.BigPictureStyle getBigPictureStyle(Bundle message, Bitmap bigPicture,
    String title, final String messageText) {
  if (Build.VERSION.SDK_INT < 16 || message == null || bigPicture == null) {
    return null;
  }

  Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle() {
    @Override
    protected RemoteViews getStandardView(int layoutId) {
      RemoteViews remoteViews = super.getStandardView(layoutId);
      if (messageText != null && messageText.length() >= MAX_ONE_LINE_TEXT_LENGTH) {
        // Modifications of standard push RemoteView.
        try {
          int id = Resources.getSystem().getIdentifier("text", "id", "android");
          remoteViews.setBoolean(id, "setSingleLine", false);
          remoteViews.setInt(id, "setLines", 2);
          if (Build.VERSION.SDK_INT < 23) {
            // Make text smaller.
            remoteViews.setViewPadding(id, 0, BIGPICTURE_TEXT_TOP_PADDING, 0, 0);
            remoteViews.setTextViewTextSize(id, TypedValue.COMPLEX_UNIT_SP, BIGPICTURE_TEXT_SIZE);
          }
        } catch (Throwable throwable) {
          Log.e("Cannot modify push notification layout.");
        }
      }
      return remoteViews;
    }
  };

  bigPictureStyle.bigPicture(bigPicture)
      .setBigContentTitle(title)
      .setSummaryText(message.getString(Constants.Keys.PUSH_MESSAGE_TEXT));

  return bigPictureStyle;
}
 
源代码2 项目: CodenameOne   文件: NotificationCompatJellybean.java
public void addBigPictureStyle(CharSequence bigContentTitle, boolean useSummary,
        CharSequence summaryText, Bitmap bigPicture, Bitmap bigLargeIcon,
        boolean bigLargeIconSet) {
   Notification.BigPictureStyle style = new Notification.BigPictureStyle(b)
       .setBigContentTitle(bigContentTitle)
       .bigPicture(bigPicture);
   if (bigLargeIconSet) {
       style.bigLargeIcon(bigLargeIcon);
   }
    if (useSummary) {
        style.setSummaryText(summaryText);
     }
}
 
public static void addBigPictureStyle(NotificationBuilderWithBuilderAccessor b,
        CharSequence bigContentTitle, boolean useSummary,
        CharSequence summaryText, Bitmap bigPicture, Bitmap bigLargeIcon,
        boolean bigLargeIconSet) {
    Notification.BigPictureStyle style = new Notification.BigPictureStyle(b.getBuilder())
        .setBigContentTitle(bigContentTitle)
        .bigPicture(bigPicture);
    if (bigLargeIconSet) {
        style.bigLargeIcon(bigLargeIcon);
    }
    if (useSummary) {
        style.setSummaryText(summaryText);
    }
}
 
public void addBigPictureStyle(CharSequence bigContentTitle, boolean useSummary,
        CharSequence summaryText, Bitmap bigPicture, Bitmap bigLargeIcon,
        boolean bigLargeIconSet) {
   Notification.BigPictureStyle style = new Notification.BigPictureStyle(b)
       .setBigContentTitle(bigContentTitle)
       .bigPicture(bigPicture);
   if (bigLargeIconSet) {
       style.bigLargeIcon(bigLargeIcon);
   }
    if (useSummary) {
        style.setSummaryText(summaryText);
     }
}
 
源代码5 项目: guideshow   文件: NotificationCompatJellybean.java
public void addBigPictureStyle(CharSequence bigContentTitle, boolean useSummary,
        CharSequence summaryText, Bitmap bigPicture, Bitmap bigLargeIcon,
        boolean bigLargeIconSet) {
   Notification.BigPictureStyle style = new Notification.BigPictureStyle(b)
       .setBigContentTitle(bigContentTitle)
       .bigPicture(bigPicture);
   if (bigLargeIconSet) {
       style.bigLargeIcon(bigLargeIcon);
   }
    if (useSummary) {
        style.setSummaryText(summaryText);
     }
}
 
@Override
public Notification build() {
    // Note: this is not a NotificationCompat builder so be mindful of the
    // API level of methods you call on the builder.
    Notification.Builder builder = new Notification.Builder(mContext);
    builder.setContentTitle(mTitle);
    builder.setContentText(mBody);
    builder.setSubText(mOrigin);
    builder.setTicker(mTickerText);
    if (mImage != null) {
        Notification.BigPictureStyle style =
                new Notification.BigPictureStyle().bigPicture(mImage);
        if (Build.VERSION.CODENAME.equals("N")
                || Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
            // Android N doesn't show content text when expanded, so duplicate body text as a
            // summary for the big picture.
            style.setSummaryText(mBody);
        }
        builder.setStyle(style);
    } else {
        // If there is no image, let the body text wrap only multiple lines when expanded.
        builder.setStyle(new Notification.BigTextStyle().bigText(mBody));
    }
    builder.setLargeIcon(getNormalizedLargeIcon());
    setSmallIconOnBuilder(builder, mSmallIconId, mSmallIconBitmap);
    builder.setContentIntent(mContentIntent);
    builder.setDeleteIntent(mDeleteIntent);
    for (Action action : mActions) {
        addActionToBuilder(builder, action);
    }
    if (mSettingsAction != null) {
        addActionToBuilder(builder, mSettingsAction);
    }
    builder.setDefaults(mDefaults);
    builder.setVibrate(mVibratePattern);
    builder.setWhen(mTimestamp);
    builder.setOnlyAlertOnce(!mRenotify);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        // Notification.Builder.setPublicVersion was added in Android L.
        builder.setPublicVersion(createPublicNotification(mContext));
    }
    return builder.build();
}
 
源代码7 项目: 365browser   文件: StandardNotificationBuilder.java
@Override
public Notification build() {
    // Note: this is not a NotificationCompat builder so be mindful of the
    // API level of methods you call on the builder.
    // TODO(crbug.com/697104) We should probably use a Compat builder.
    ChromeNotificationBuilder builder =
            NotificationBuilderFactory.createChromeNotificationBuilder(
                    false /* preferCompat */, mChannelId);

    builder.setContentTitle(mTitle);
    builder.setContentText(mBody);
    builder.setSubText(mOrigin);
    builder.setTicker(mTickerText);
    if (mImage != null) {
        Notification.BigPictureStyle style =
                new Notification.BigPictureStyle().bigPicture(mImage);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            // Android N doesn't show content text when expanded, so duplicate body text as a
            // summary for the big picture.
            style.setSummaryText(mBody);
        }
        builder.setStyle(style);
    } else {
        // If there is no image, let the body text wrap only multiple lines when expanded.
        builder.setStyle(new Notification.BigTextStyle().bigText(mBody));
    }
    builder.setLargeIcon(getNormalizedLargeIcon());
    setSmallIconOnBuilder(builder, mSmallIconId, mSmallIconBitmap);
    builder.setContentIntent(mContentIntent);
    builder.setDeleteIntent(mDeleteIntent);
    for (Action action : mActions) {
        addActionToBuilder(builder, action);
    }
    if (mSettingsAction != null) {
        addActionToBuilder(builder, mSettingsAction);
    }
    builder.setDefaults(mDefaults);
    builder.setVibrate(mVibratePattern);
    builder.setWhen(mTimestamp);
    builder.setOnlyAlertOnce(!mRenotify);
    setGroupOnBuilder(builder, mOrigin);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        // Public versions only supported since L, and createPublicNotification requires L+.
        builder.setPublicVersion(createPublicNotification(mContext));
    }
    return builder.build();
}
 
源代码8 项目: 365browser   文件: NotificationCompatBuilder.java
@Override
public ChromeNotificationBuilder setStyle(Notification.BigPictureStyle style) {
    assert false; // unused
    return this;
}
 
源代码9 项目: 365browser   文件: NotificationBuilder.java
@Override
public ChromeNotificationBuilder setStyle(Notification.BigPictureStyle style) {
    mBuilder.setStyle(style);
    return this;
}
 
源代码10 项目: 365browser   文件: ChromeNotificationBuilder.java
ChromeNotificationBuilder setStyle(Notification.BigPictureStyle style);