我想创建通知,例如用于 android 设备的 WhatsApp 应用程序中使用的弹出通知。
我该怎么做?由于我是新用户,我无法上传屏幕截图
请参考此链接:http ://cdn6.staztic.com/cdn/screenshot/appsdroidnotifythemeicecreamsandwich-1-1.jpg
对于屏幕截图图像并帮助我:)
我想创建通知,例如用于 android 设备的 WhatsApp 应用程序中使用的弹出通知。
我该怎么做?由于我是新用户,我无法上传屏幕截图
请参考此链接:http ://cdn6.staztic.com/cdn/screenshot/appsdroidnotifythemeicecreamsandwich-1-1.jpg
对于屏幕截图图像并帮助我:)
它们被称为“提醒”通知。这个页面有一个很好的解释。
总而言之,将优先级设置为高(或最大)。
这是我的代码中的一个示例:
public static void notify(Context context, int id, int titleResId,
int textResId, PendingIntent intent) {
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
String title = context.getString(titleResId);
String text = context.getString(textResId);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notification)
.setContentTitle(title)
.setContentText(text)
.setDefaults(Notification.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setAutoCancel(true)
.setWhen(System.currentTimeMillis())
.setTicker(title)
.setContentIntent(intent);
notificationManager.notify(id, builder.build());
}
声明一个 PopUpWindow 引用并从要打开弹出窗口的位置调用initialPopupWindow() 方法:
private PopupWindow pwindo;
private void initiatePopupWindow() {
try {
// We need to get the instance of the LayoutInflater
LayoutInflater inflater = (LayoutInflater) PopUpWinndowDemoActivity.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.screen_popup,
(ViewGroup) findViewById(R.id.popup_element));
pwindo = new PopupWindow(layout, 300, 370, true);
pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);
} catch (Exception e) {
e.printStackTrace();
}
}
弹出窗口有一个 screen_popup.xml,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/popup_element"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#444444"
android:orientation="vertical"
android:padding="10sp" >
<TextView
android:id="@+id/txtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5sp"
android:text="Hello!" />
</LinearLayout>
您可以使用 Dialog 主题或通过在主题中将窗口背景设置为透明来使活动的窗口透明来实现它。只要让你的 UI 看起来像一个对话框。
<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>