如何为 android 创建通知之类的 inshorts
Posted
技术标签:
【中文标题】如何为 android 创建通知之类的 inshorts【英文标题】:How to create inshorts like notifications for android 【发布时间】:2017-03-29 05:45:39 【问题描述】:如何为安卓创建推送通知等简写。通知包括通知底部带有文本的完整图像。
小通知只是文本,但当你展开它时,它会在背景中显示图像,底部有文本。
有人可以帮我解决这个问题吗?以下是截图
【问题讨论】:
你需要自定义 Remoteviews laurivan.com/android-notifications-with-custom-layout developer.android.com/reference/android/app/… 【参考方案1】:您需要将自定义远程视图扩展为通知的布局,如下所示:
layout_custom_notification.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<ImageView
android:id="@+id/image_news"
android:layout_
android:layout_
android:scaleType="centerCrop"
android:src="@mipmap/dine_main_item_bg1" />
<TextView
android:id="@+id/tv_news_title"
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"
android:layout_toLeftOf="@+id/tv_news_time"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="Trump signs order to roll back Obama-era climate policies"
android:textColor="@android:color/white"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_news_time"
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="20dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:text="9:14 AM"
android:textColor="@android:color/white"
android:textSize="16sp" />
<TextView
android:layout_
android:layout_
android:layout_alignParentRight="true"
android:layout_marginTop="20dp"
android:padding="8dp"
android:text="Share"
android:textColor="@android:color/white"
android:textSize="16sp" />
</RelativeLayout>
此后,将此布局设置为通知中的内容视图,如下所示:
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.layout_custom_notification);
contentView.setImageViewResource(R.id.image_news, R.drawable.ic_launcher);
contentView.setTextViewText(R.id.tv_news_time, "9:14 AM");
contentView.setTextViewText(R.id.tv_news_title, "Trump signs order to roll back Obama-era climate policies");
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(icon)
.setContent(contentView)
.setContentTitle("Custom Notification")
.setContentIntent(contentIntent)
.setWhen(when);
...
mNotificationManager.notify(1, notificationBuilder.build());
【讨论】:
您好,感谢您的更新。它正在部分工作。但是通知是小通知,而不是大通知。你能帮我解决这个问题吗 同样在点击通知时,应用程序没有打开。如何做到这一点? 感谢@Suraj ...但全屏图像在顶部和底部带有空格(白色填充)。如何解决这个问题。 @Nikhil 请提供截图 我已在下一个答案中添加了屏幕截图。请检查【参考方案2】:PFB 顶部和底部有填充的通知的屏幕截图。 测试 62 是通知消息,它出现在空白处。我希望它出现在底部的图像之上。
【讨论】:
您可以在 layout_custom_notification.xml 的 ImageView 中包含 android:scaleType="centerCrop",如我更新的答案所示以上是关于如何为 android 创建通知之类的 inshorts的主要内容,如果未能解决你的问题,请参考以下文章
如何为自定义 Android 通知添加垂直线到 RemoteView?
如何为 Google Cloud Messaging 实现服务器以发送推送通知 android studio