Cómo aplicar un estilo de vista grande a una notificación mediante la biblioteca Parse
Esta biblioteca funciona perfectamente, pero tengo una duda.
Cuando envío un mensaje a usuarios con más de dos líneas, los usuarios no pueden ver todos los mensajes en el área de notificación.
- OUTDATED DEVICE: Notificación de Parse Push a dispositivos Android
- Analizar el código de error de respuesta incorrecto del servidor json 100
- ¿Qué lógica implica la comparación de una ubicación con varios usuarios
- Parse REST API no devuelve clave del cliente
- Android Parse - ParseQuery con condiciones de igualdad de lista para campo / columna
Pero sé que ANDROID puede hacerlo
Http://developer.android.com/guide/topics/ui/notifiers/notifications.html#ApplyStyle . ¿Cómo hacerlo para la notificación de parse.com
?
Mira las imágenes para explicar mi problema
Image1 http://gorio.eng.br/parse1.png
Image2 http://gorio.eng.br/parse2.png
- ¿Cómo probar la clase de aplicación con Robolectric?
- ¿Cómo enlazar a Google + usuarios registrados en el backend de Parse en Android?
- Multiplataforma MBaas similar a CloudKit?
- Cómo cerrar sesión / cambiar la cuenta de Twitter con Parse
- Android: ¿Cómo sincronizar las consultas con Bolts de Parse.com?
- Empuje usando Parse en Qt5.5 para Android: NullPointerException en getCurrentInstallation
- Usando ParseFacebookUtils.logInWithReadPermissionsInBackground no guarda los permisos de Facebook Android
- ¿Cómo crear una cuenta de usuario _segmentar desde un token de Google para Android?
He aquí un ejemplo usando 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());
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());
Este fragmento muestra cómo construir el objeto Builder . Establece el estilo para que la vista grande sea texto grande y establece su contenido como el mensaje de recordatorio.
String msg="This is Big style notification builder.This is Big style notification builder.This is Big style notification builder.This is Big style notification builder.This is Big style notification builder.This is Big style notification builder.This is Big style notification builder.This is Big style notification builder.This is Big style notification builder.This is Big style notification builder." // Constructs the Builder object. NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_stat_notification) .setContentTitle(getString(R.string.notification)) .setContentText(getString(R.string.ping)) .setDefaults(Notification.DEFAULT_ALL) // requires VIBRATE permission .setStyle(new NotificationCompat.BigTextStyle().bigText(msg)) final NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); nm.notify(0, builder.build());
Para obtener más información, visite: http://developer.android.com/training/notify-user/expanded.html
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());
configura
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
Aquí he adjuntado una captura de pantalla, el contenido de la primera pantalla de un título de la publicación y cuando hacemos clic en la flecha hacia abajo en el lado derecho del nombre de la aplicación que conduce a la segunda captura de pantalla que es el diseño personalizado para notificación push. Que he diseñado para la mía.
<?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>
Método para crear notificaciones con diseño personalizado,
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; } }
Necesita anular el método getNotification de su subclase ParsePushBroadcastReceiver y encima hay muchas respuestas diciendo cómo establecer la vista de contenido grande en una notificación.
- Fragmento ya activo – Al intentar establecerArgumentos
- Reanudar la reproducción de VideoView desde onResume