標籤:android style blog http color java 使用 io
我想實現一個效果,從底部向上逐漸彈出。如所示:
1.點擊 顯示 按鈕時,一個dialog對話方塊從底部慢慢向上彈出。
2.關閉dialog時, dialog緩慢的移動向底部消失。很平滑的效果。
實現方式:
在activity中寫代碼如下
123456789101112131415161718192021222324252627 |
public class MainActivity extends Activity { Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1 = (Button)findViewById(R.id.button1); button1.setOnClickListener(mOnClickListener); } OnClickListener mOnClickListener = new View.OnClickListener(){ @Override public void onClick(View v) { //TODO Auto-generated method stub AlertDialog dialog = new AlertDialog.Builder(MainActivity. this ) .setTitle( "title" ).setMessage( "message" ).create(); <span style= "color: #ff0000;" ><strong>Window window = dialog.getWindow(); window.setGravity(Gravity.BOTTOM); //此處可以設定dialog顯示的位置 window.setWindowAnimations(R.style.mystyle); //添加動畫 </strong> </span> dialog.show(); } }; } |
準備一個 style資源檔,建立 mystyle
<style name="mystyle" parent="android:Animation"> <item name="@android:windowEnterAnimation">@anim/dialog_enter</item> <item name="@android:windowExitAnimation">@anim/dialog_exit</item></style>
在這個mystyle中使用了兩個動畫,如下:
dialog_enter.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="600" android:fromYDelta="100%p" /> </set>
dialog_exit.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="600" android:toYDelta="100%p" /></set>
至此完成。
代碼解釋:
1. 為 dialog 所在的windows 設定了一個 動畫樣式 style
2. 該style 指定了 表單(windows)進入的動畫(dialog_enter) 和離開的動畫 (dialog_exit)
3. 在進入時的動畫dialog_enter 中,寫了一個 translate 的變化,指定從 其父容器的 100% 位置開始。 其父容器的 100% 位置 是 螢幕以外的位置,是看不到,這是一個開始點。沒有指定結束點,結束點就預設 本身應該顯示的位置(即將顯示的位置)。
4.同理,dialog_exit定義了離開時動畫。該動畫未指定開始位置,指定了結束位置是 其父容器的 100% 位置 ,這樣就慢慢的向下消失在螢幕以外。
android:toYDelta="100%p" 中的 100% 指示了 其父容器的 100% 位置
而如果寫成
android:toYDelta="100%",即是指示了 起自身的 100% 位置。
參考:
http://www.linuxidc.com/Linux/2012-04/59153.htm
http://blog.csdn.net/ztp800201/article/details/7387668