如何创建弹出式通知,如whatsapp for android中使用的通知?

时间:2012-09-03 09:54:39

标签: android notifications whatsapp

我想创建类似于Android设备的WhatsApp应用程序中使用的弹出通知的通知。

我该怎么办? 由于我是新用户,我无法上传屏幕截图

请参阅此链接:http://cdn6.staztic.com/cdn/screenshot/appsdroidnotifythemeicecreamsandwich-1-1.jpg

enter image description here

屏幕截图并帮助我:)

4 个答案:

答案 0 :(得分:5)

他们被称为“单挑”'通知。 This page有一个很好的解释。

总结一下,将优先级设置为高(或最大)。

以下是我的代码中的示例:

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());
}

答案 1 :(得分:0)

声明一个PopUpWindow引用并调用initiatePopupWindow()方法,从中打开一个弹出窗口:

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>

答案 2 :(得分:0)

您可以使用Dialog主题或通过在主题中将窗口背景设置为透明来使活动窗口透明来实现它。只需让你的UI看起来像一个Dialog。

<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>

答案 3 :(得分:-7)

我不知道whatsapp的弹出窗口是什么样的......

您可以使用toastdialog