編輯:關於Android編程
項目開發的需要,因為到現在項目接近完工,用戶提出對條件篩選方式進行修改,為做到最小的改動實現用戶的需求,各種百度,對於對話框風格大家普遍使用PopupWindow,但由於之前開發設計時使用的是activity對話框方式,所以今天就為大家介紹一下,如何通過activity實現與PopupWindow相同的效果,廢話不多講現在開始干貨。
實現對話框風格的activity,我們需要在AndroidManifest.xml添加一句樣式聲明:
<activity android:name=".product.MyselfPayProduct" android:screenOrientation="portrait" android:theme="@android:style/Theme.Dialog" >
不過這樣的對話框風格往往無法滿足我們的需要,顯示的效果不那麼令人滿意,第一點就是如何控制對話框的大小:
//窗口對齊屏幕寬度 Window win = this.getWindow(); win.getDecorView().setPadding(0, 0, 0, 0); WindowManager.LayoutParams lp = win.getAttributes(); lp.width = WindowManager.LayoutParams.MATCH_PARENT; lp.height = WindowManager.LayoutParams.WRAP_CONTENT; lp.gravity = Gravity.TOP;//設置對話框置頂顯示 win.setAttributes(lp);
將這個控制語句添加在我們的對話框activity的onClick()方法中,這樣我們的對話框就可以寬度與屏幕一樣寬了,lp.gravity = Gravity.TOP;//設置對話框置頂顯示,android默認對話框居中顯示,我們可以通過這句代碼設置對話框的顯示位置。
到這裡是不是已經達到你的滿意了呢?下面在給大家介紹一下,如何通過activity實現微信右上角點擊加號的顯示效果。做這個顯示效果,我們需要通過在布局文件中通過android:layout_marginTop="50dp"這樣來調整對話框的位置,Android默認彈出框效果非常難看,為了達到更好的顯示效果,我們這裡添加一個顯示的動畫效果:
進入動畫:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:fromXScale="1.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:toXScale="1.0" android:fromYScale="0.0" android:toYScale="1.0" android:duration="200" android:pivotX="0" android:pivotY="10%" /> </set>
退出動畫:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:fromXScale="1.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:toXScale="1.0" android:fromYScale="1.0" android:toYScale="0.0" android:duration="200" android:pivotX="0" android:pivotY="10%" /> </set>
android動畫文件一般置於res的anim文件夾下,默認該文件夾不存在,需要我們手動添加。
下面我們需要把我們的動畫添加的android的樣式文件:style.xml
<resources> <!-- Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. --> <style name="AppBaseTheme" parent="android:Theme.Light"> <!-- Theme customizations available in newer API levels can go in res/values-vXX/styles.xml, while customizations related to backward-compatibility can go here. --> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style> <!-- 沒有標題 --> <style name="notitle" parent="AppBaseTheme"> <item name="android:windowNoTitle">true</item> </style> <!-- 類似對話框效果 --> <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> <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> </resources>
最後我們需要修改一下我們在AndroidManifest.xml文件中的聲明:
android:theme="@style/MyDialogTopRight"
到這裡我們就完美實現了activity的對話框風格顯示。
以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持本站!
先看看效果圖:中間的圓形頭像和光環波形講解請看:http://www.jb51.net/article/96508.htm周圍的氣泡布局,因為布局RatioLayout是
在Android 5.0 中引入了Material Design的設計理念,並加入了RecyclerView和CardView兩個控件。本文就講解如何使用者兩個控件來實現
這裡講一下React Native中的一個組件——ActivityIndicator,這是一個加載指示器,俗稱菊花,很常見的,效果如下所示:imp
Notification的用法 --- 狀態欄通知發送一個狀態欄通知必須的兩個類:1. NotificationManager --- 狀態欄通知的管理類,負責發通知,清