现在的位置: 首页 > 综合 > 正文

android底部弹出框

2014年10月05日 ⁄ 综合 ⁄ 共 2745字 ⁄ 字号 评论关闭

自定义dialog布局,创建动画,自下向上弹出

style:    

<style name="mystyle" parent="android:Animation">   

        <item name="@android:windowEnterAnimation">@anim/dialog_enter</item>  <!-- 进入时的动画   -->  
        <item name="@android:windowExitAnimation">@anim/dialog_exit</item>    <!-- 退出时的动画     -->  

    </style>

    <style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">false</item><!--半透明-->  
<item name="android:windowNoTitle">true</item><!--无标题--> 
<item name="android:background">@null</item>
<item name="android:windowBackground">@null</item>
<item name="android:backgroundDimEnabled">false</item><!-- 周围变暗 -->
</style>

<!-- 弹出动画dialog_enter --> 

<set xmlns:android="http://schemas.android.com/apk/res/android">   
    <!--  fromYDelta指的是父容器,100%表示父容器的底部 --> 
    <translate   
        android:fromYDelta="100%p"        
        android:duration="400"   
        />   
</set> 

<!-- 退出动画dialog_exit --> 

<set xmlns:android="http://schemas.android.com/apk/res/android">   
    <!--  fromYDelta指的是父容器,100%表示父容器的底部 --> 
    <translate   
        android:toYDelta="100%p"        
        android:duration="400"   
        />   
</set> 

dialog布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <LinearLayout android:background="#ffffff"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
        <Button
        android:id="@+id/Button02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button" />

   <Button
       android:id="@+id/Button01"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="Button" />

   <Button
       android:id="@+id/button1"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="Button" />
    </LinearLayout>
</RelativeLayout>

java代码:

public class MainActivity extends Activity
{
    
    private Button button;
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View arg0)
            {
                // TODO Auto-generated method stub    
                Dialog dialog = new Dialog(MainActivity.this, R.style.dialog);
                dialog.setContentView(R.layout.setting);
                Window window = dialog.getWindow();
                window.setGravity(Gravity.BOTTOM); //此处可以设置dialog显示的位置    
                window.setWindowAnimations(R.style.mystyle); //添加动画    
                dialog.show();
            }
        });
    }  
}

抱歉!评论已关闭.