我正在修改測試消息應用程序,我想添加的功能之一是,當收到文本消息時,某種類型的對話框會彈出文本消息,並且能夠快速回復它,而不必進入實際應用程序。以HandcentSMS爲例,這裏就是我說的:創建用於文本消息鏈接的對話鏈接彈出框HandcentSMS
任何想法如何去這樣做,或任何人都可以點我一個很好的方向,以獲得在這個開始的?
我正在修改測試消息應用程序,我想添加的功能之一是,當收到文本消息時,某種類型的對話框會彈出文本消息,並且能夠快速回復它,而不必進入實際應用程序。以HandcentSMS爲例,這裏就是我說的:創建用於文本消息鏈接的對話鏈接彈出框HandcentSMS
任何想法如何去這樣做,或任何人都可以點我一個很好的方向,以獲得在這個開始的?
你可以讓一個活動,並與自定義樣式風格也應該繼承Theme.Dialog 舉例風格:
<style name="Theme.MyDialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@android:drawable/alert_light_frame</item>
<item name="android:textColorPrimary">@android:color/black</item>
<item name="android:textColor">@android:color/black</item>
<item name="android:overScrollMode">never</item>
<item name="android:windowNoTitle">true</item>
</style>
最重要的事情就是好好準備活動的XML佈局。 我建議WRAP_CONTENT垂直的所有東西,水平FILL_PARENT。
樣品佈局的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="280dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/frg_alert_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/topbar_logo"
android:drawablePadding="10dp"
android:gravity="center_vertical"
android:padding="10dp"
android:text="Title"/>
<View
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="@android:drawable/divider_horizontal_bright"/>
</LinearLayout>
<FrameLayout
android:id="@+id/customPanel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone">
<FrameLayout
android:id="@+id/custom"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</FrameLayout>
<ScrollView
android:id="@+id/messagePanel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:padding="10dp">
<TextView
android:id="@android:id/message"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Some text"/>
</ScrollView>
<View
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="@android:drawable/divider_horizontal_bright"/>
<LinearLayout
android:id="@+id/frg_alert_three_buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="5dp"
android:visibility="gone"
android:weightSum="3">
<Button
android:id="@+id/button_positive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:maxLines="2"
android:minLines="2"
android:text="Button"/>
<Button
android:id="@+id/button_neutral"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:maxLines="2"
android:text="Button"/>
<Button
android:id="@+id/button_negative"
style="?android:attr/buttonStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:maxLines="2"
android:text="Button"/>
</LinearLayout>
<LinearLayout
android:id="@+id/frg_alert_two_buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="@dimen/screenPadding"
android:weightSum="2">
<Button
android:id="@+id/button_positive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:maxLines="2"
android:minLines="2"
android:text="Button"/>
<Button
android:id="@+id/button_negative"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:maxLines="2"
android:minLines="2"
android:text="Button"/>
</LinearLayout>
</LinearLayout>
用於創建此UI剛剛創建背景的活動透明爲:
步驟1:添加RES \值\ style.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Smspopuptheme" parent="android:style/Theme.Translucent">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:background">@android:color/transparent</item>
</style>
</resources>
第2步:將主題添加到AndroidManifest.xml
中進行的活動核苷酸,以顯示與消息:
<activity
android:label="@string/app_name"
android:theme="@style/Theme.D1NoTitleDim"
android:name=".SmspopuptestActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
步驟3:在SmspopuptestActivity.java設置FEATURE_NO_TITLE
setContentView
如前:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
//this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
步驟4:你的動態佈局看起來像res/layout/main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#55000000"
android:gravity="center"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/frg_alert_buttons"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@android:color/darker_gray"
android:gravity="center"
android:padding="5dp"
android:layout_centerInParent="true"
android:weightSum="3">
</LinearLayout>
</LinearLayout>
添加您的佈局元素frg_alert_buttons根據您的需要喜歡按鈕,Textviews,Imageview和EditViews。
開始SmspopuptestActivity.java當您收到新的SMS時的活動。
一些有用的資源:
android-listen-for-incoming-sms-messages
一些SOUCE CODE FOR SMSPOPUP Android中:
正是我一直在尋找,將其添加爲啓動活動是一個很好的接觸太。謝謝! – Gmeister4 2015-12-28 22:26:17
'smspopup'做類似的東西,它是開源:code.google.com/p/android-smspopup/ – Macarse 2012-06-21 02:57:06