Android使用Activity用作彈出式對話框
Android中可用于實現對話框的有Dialog,PopupWindow,Activity。
下面簡單介紹下,Dialog比較方便,但是顯示位置比較固定,有時不能滿足我們的需求。
例子:(消除了背景)
<resources> <style name="dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">false</item> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/black</item> <item name="android:windowBackground">@null</item> <item name="android:backgroundDimEnabled">false</item> </style> </resources>
</div>
</div>
PopupWindow可以通過showAtLocation設置顯示位置,也可以通過ShowAsDropDown顯示在某個View的相對位置,基本能滿足我們的需求了。
Dialog dialog = new Dialog(SetActivity.this, R.style.dialog); dialog.setContentView(R.layout.test); dialog.show();
PopupWindow可以通過showAtLocation設置顯示位置,也可以通過ShowAsDropDown顯示在某個View的相對位置,基本能滿足我們的需求了。
下面介紹使用Activity作為彈出對話框,個人覺得好處有以下:
1、顯示位置的設置,直接就是一個layout.xml隨心所遇的感覺,可以實現在任何位置。
2、對對話框內控件的事件的處理,都獨立出來在一個類中,調用的地方僅需要startActivity()就可以,這樣可以使代碼結構上更加清晰。
下面我們實現這個一個例子:
1、Activity的布局文件
</div>
</div>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=" android:layout_width="wrap_content"
android:layout_height="wrap_content"
><LinearLayout android:onClick="tip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginTop="46dp" android:background="@drawable/title_function_bg" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:drawableLeft="@drawable/mm_title_btn_compose_normal" android:paddingLeft="10dp" android:paddingRight="10dp" android:text="發起聊天" android:textColor="#fff" android:textSize="20sp" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:drawableLeft="@drawable/mm_title_btn_keyboard_normal" android:paddingLeft="10dp" android:paddingRight="10dp" android:text="登錄網頁版" android:textColor="#fff" android:textSize="20sp" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:drawableLeft="@drawable/mm_title_btn_qrcode_normal" android:paddingLeft="10dp" android:paddingRight="10dp" android:text="掃一掃" android:textColor="#fff" android:textSize="20sp" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginTop="10dp" android:drawableLeft="@drawable/mm_title_btn_receiver_normal" android:paddingLeft="10dp" android:paddingRight="10dp" android:text="聽筒模式" android:textColor="#fff" android:textSize="20sp" /> </LinearLayout> </RelativeLayout> </pre><br />
2、在style.xml中定義一個theme(背景透明,無標題,動畫效果),一般Activity默認動畫效果右進右出,我們可以覆蓋。
</div> </div> 動畫效果:<style name="MyDialogTopRight"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> <item name="android:windowAnimationStyle">@style/Anim_scale</item> </style></div> </div><style name="Anim_scale" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/scale_in</item> <item name="android:activityOpenExitAnimation">@anim/scale_out</item> <item name="android:activityCloseEnterAnimation">@anim/scale_in</item> <item name="android:activityCloseExitAnimation">@anim/scale_out</item> </style>
3、在需要使用的地方直接startActity()就可以了
</div> </div>Intent intent = new Intent(context, MainWeixinTitleRightActivity.class); startActivity(intent);
最終效果:
來自:http://blog.csdn.net/lmj623565791/article/details/23116115本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!相關經驗
相關資訊
相關文檔
目錄
sesese色