How to apply a big view style to a notification using Parse library

前端 未结 8 861
孤街浪徒
孤街浪徒 2021-02-04 06:03

This library works perfectly, but i have a doubt.

When I send a message to users with more than two lines, users can\'t see all message in notification area.

But

相关标签:
8条回答
  • 2021-02-04 06:29

    you set

    String en_alert ,th_alert ,en_title,th_title ,id;
    int noti_all, noti_1, noti_2, noti_3, noti_4 = 0, Langage;
    
    Intent intent = new Intent(context, ReserveStatusActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
    
     NotificationManager notificationManager =
          (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
    
    intent = new Intent(String.valueOf(PushActivity.class));
    intent.putExtra("message", MESSAGE);
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
    stackBuilder.addParentStack(PushActivity.class);
    stackBuilder.addNextIntent(intent);
    // PendingIntent pendingIntent =
    stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
    
    // android.support.v4.app.NotificationCompat.BigTextStyle bigStyle = new NotificationCompat.BigTextStyle();
    // bigStyle.bigText((CharSequence) context);
    
    notification = new NotificationCompat.Builder(context)
                     .setSmallIcon(R.mipmap.ic_launcher)
                     .setContentTitle(th_title ) // th_title  >>> String =  th_title   
                     .setContentText(th_alert)   // th_alert>>> String =  th_title
                     .setAutoCancel(true)
                     //.setStyle(new Notification.BigTextStyle().bigText(th_alert)
                    .setStyle(new NotificationCompat.BigTextStyle().bigText(th_title))
                    .setStyle(new NotificationCompat.BigTextStyle().bigText(th_alert))
                    .setContentIntent(pendingIntent)
                    .setNumber(++numMessages)
                    .build();
    
    notification.sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    
    notificationManager.notify(1000, notification);
    

    Facebook facebook.com/PongLoveWii

    0 讨论(0)
  • 2021-02-04 06:30

    You need to override the method getNotification of your ParsePushBroadcastReceiver subclass and above there is a lot answers telling how to set the big content view on a Notification.

    0 讨论(0)
  • final String someLongText = "......";
    
    final Notification.Builder builder = new Notification.Builder(this);
    builder.setStyle(new Notification.BigTextStyle(builder)
            .bigText(someLongText)
            .setBigContentTitle("Big title")
            .setSummaryText("Big summary"))
            .setContentTitle("Title")
            .setContentText("Summary");
    
    final NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    nm.notify(0, builder.build());
    
    0 讨论(0)
  • 2021-02-04 06:43
    Bitmap icon1 = BitmapFactory.decodeResource(getResources(),
                        R.drawable.gorio);
    
                NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                        getApplicationContext()).setAutoCancel(true)
                        .setContentTitle("Exemplo 1")
                        .setSmallIcon(R.drawable.gorio)
                        .setLargeIcon(icon1).setContentText("Hello World!");
    
                NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle();
                bigText.bigText(msg);
                bigText.setBigContentTitle("GORIO Engenharia");
                bigText.setSummaryText("Por: GORIO Engenharia");
                mBuilder.setStyle(bigText);
                mBuilder.setPriority(NotificationCompat.PRIORITY_MAX);
    
                // Creates an explicit intent for an Activity in your app
                Intent resultIntent = new Intent(getApplicationContext(),
                        MainActivity.class);
    
                // The stack builder object will contain an artificial back
                // stack for
                // the
                // started Activity.
                // getApplicationContext() ensures that navigating backward from
                // the Activity leads out of
                // your application to the Home screen.
                TaskStackBuilder stackBuilder = TaskStackBuilder
                        .create(getApplicationContext());
    
                // Adds the back stack for the Intent (but not the Intent
                // itself)
                stackBuilder.addParentStack(MainActivity.class);
    
                // Adds the Intent that starts the Activity to the top of the
                // stack
                stackBuilder.addNextIntent(resultIntent);
                PendingIntent resultPendingIntent = stackBuilder
                        .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
                mBuilder.setContentIntent(resultPendingIntent);
    
                NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
                // mId allows you to update the notification later on.
                mNotificationManager.notify(100, mBuilder.build());
    
    0 讨论(0)
  • 2021-02-04 06:45

    Here's an example using Notification.BigTextStyle.

        final String someLongText = "fkdljfdldkfj;ldaksjfkladj;flja;lkjdfljadslfjaddfdsfafjdfad" +
                "fdl;akjf;lkdf;lkaj;flkjda;lkfjadljflk;adsjfladjflk;dfjlkdjflakdfjdaffjdlfjdjjj" +
                "adjflkjadlkfjad;lkfjad;sljf;ladkjajlkfjad;lksfjl;akdjf;lkdsajf;lkdjfkadj;flkad" +
                "jf;lkadjfkldas;lkfja;dljf;lkdasjf;lkadjs;lfjas;ldkfj;lkadsjfl;kadljfl;kasdjf;l" +
                "jdlskfjklda;fjadslkfj;sdalkfj;ladjf;lajdl;fkajld;kfjlajfl;adjfl;kajdl;fjadl;kfj;";
    
        final Notification.Builder builder = new Notification.Builder(this);
        builder.setStyle(new Notification.BigTextStyle(builder)
                .bigText(someLongText)
                .setBigContentTitle("Big title")
                .setSummaryText("Big summary"))
                .setContentTitle("Title")
                .setContentText("Summary")
                .setSmallIcon(android.R.drawable.sym_def_app_icon);
    
        final NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        nm.notify(0, builder.build());
    

    Example

    0 讨论(0)
  • 2021-02-04 06:46

    Here I have attached a screenshots, the first screen contents a title of the post and when we click on the down arrow on right side of the app name it leads to the second screenshot which is custom layout for push notification.The following is sample layout that I have designed for mine.

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="4dp"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    card_view:cardCornerRadius="5dp"
    card_view:cardUseCompatPadding="true">
    
    <LinearLayout
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:background="#80000000"
    android:layout_height="wrap_content">
    
    <ImageView
        android:src="@mipmap/ic_launcher"
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:padding="10dp"
        android:layout_marginLeft="5dp"
        android:background="@null"
        android:layout_gravity="center_vertical|center_horizontal"
        android:scaleType="centerCrop"/>
    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:minHeight="48dp"
        android:paddingBottom="16dp"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:paddingTop="16dp"
        android:background="@android:color/transparent"
        android:textColor="@android:color/white"
        tools:text="Test"/>
     </LinearLayout>
     <ImageView
    android:id="@+id/image"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:adjustViewBounds="true"
    android:contentDescription="@null"
    android:scaleType="centerCrop"
    android:src="@drawable/placeholder"/>
    </LinearLayout>
    

    Method for creating Notification with custom layout,

    public static void createNotification(String title, String body,String image_url, Context context, int notificationsId, String single_id) {
    Intent notificationIntent;
    
    long when = System.currentTimeMillis();
    int id = (int) System.currentTimeMillis();
    
    Bitmap bitmap = getBitmapFromURL(image_url);
    NotificationCompat.BigPictureStyle notifystyle = new NotificationCompat.BigPictureStyle();
    notifystyle.bigPicture(bitmap);
    RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification_layout);
    contentView.setImageViewBitmap(R.id.image, bitmap);
    contentView.setTextViewText(R.id.title, body);
    
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.ic_launcher)
            .setStyle(notifystyle)
            .setCustomBigContentView(contentView)
            .setContentText(body);
    NotificationManager mNotificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    
    notificationIntent = new Intent(context, SinglePost.class);
    notificationIntent.putExtra("single_id",single_id);
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent contentIntent = PendingIntent.getActivity(context, id, notificationIntent, 0); 
    
    Notification notification = mBuilder.build();
    notification.contentIntent = contentIntent;
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.defaults |= Notification.DEFAULT_SOUND;
    notification.defaults |= Notification.DEFAULT_VIBRATE;
    
    
    mNotificationManager.notify(notificationsId, notification);
    
    }
    
    public static Bitmap getBitmapFromURL(String strURL) {
    try {
        URL url = new URL(strURL);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
    }
    

    0 讨论(0)
提交回复
热议问题