对话框的动画以及去掉对话框的标题

首先说说怎样去掉对话框的标题:

Dialog d = new Dialog(context);
d.requestWindowFeature(Window.FEATURE_NO_TITLE);

就这么简单
demo中是这样的:

public class CustomDialog extends Dialog implements android.view.View.OnClickListener {

    private Window window = null;

    public CustomDialog(Context context) {
        super(context);
        requestWindowFeature(Window.FEATURE_NO_TITLE);  // 去掉对话框的标题

    }

    public void showDialog(int x, int y) {
        setContentView(R.layout.dialog_input);

        windowDeploy(x, y);

        // 设置触摸对话框意外的地方取消对话框
        setCanceledOnTouchOutside(false);
        EditText explain = (EditText) findViewById(R.id.cus_diaedit);
        findViewById(R.id.cus_diacancle).setOnClickListener(this);
        findViewById(R.id.cus_diaok).setOnClickListener(this);
        show();
    }

    // 设置窗口显示
    public void windowDeploy(int x, int y) {
        window = getWindow(); // 得到对话框
        window.setWindowAnimations(R.style.dialogWindowAnim); // 设置窗口弹出动画
        window.setBackgroundDrawableResource(R.color.vifrification); // 设置对话框背景为透明
//      WindowManager.LayoutParams wl = window.getAttributes();
        // 根据x,y坐标设置窗口需要显示的位置
//      wl.x = x; // x小于0左移,大于0右移
//      wl.y = y; // y小于0上移,大于0下移
        // wl.alpha = 0.6f; //设置透明度
        // wl.gravity = Gravity.BOTTOM; //设置重力
//      window.setAttributes(wl);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.cus_diacancle:
            dismiss();
            break;

        case R.id.cus_diaok:
            dismiss();
            break;
        }
    }
}


public class MainActivity extends Activity{
    private int screenWidthDip;
    private int screenHeightDip;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        DisplayMetrics dm = new DisplayMetrics();
        screenWidthDip = dm.widthPixels/2;
        screenHeightDip = dm.heightPixels/2;

    }


    public void fly(View v){
            CustomDialog dialog = new CustomDialog(MainActivity.this);
        dialog.showDialog(screenWidthDip, screenHeightDip);
    }
}

Dialog的XML布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/input_dialog_board"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


    <RelativeLayout 
        android:background="@drawable/yuanjiao1"
        android:layout_height="200dp"
        android:layout_width="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_centerInParent="true">

        <TextView 
            android:id="@+id/cus_diatitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="20dp"
            android:textSize="16sp"
            android:text="请输入支付密码"/>
        <View 
            android:id="@+id/cus_diaview"
            android:layout_below="@+id/cus_diatitle"
            android:layout_width="match_parent"
            android:layout_height="0.5dp"
            android:background="#9c9c9c"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"/>

        <EditText 
            android:id="@+id/cus_diaedit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/cus_diaview"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginTop="20dp"
            android:hint="请输入密码"
            android:inputType="textPassword" />

        <TextView 
            android:layout_below="@+id/cus_diaedit"
            android:id="@+id/cus_diacancle"
            android:layout_marginLeft="18dp"
            android:layout_marginRight="15dp"
            android:layout_marginTop="20dp"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:gravity="center"
            android:text="取消"
            android:background="@drawable/yuanjiao"/>

        <TextView 
            android:layout_below="@+id/cus_diaedit"
            android:id="@+id/cus_diaok"
            android:layout_alignParentRight="true"
            android:layout_marginRight="18dp"
            android:layout_marginTop="20dp"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:gravity="center"
            android:text="确定"
            android:background="@drawable/yuanjiao"/>

        <TextView 
            android:layout_below="@+id/cus_diacancle"
            android:layout_marginTop="20dp"
            android:layout_marginLeft="18dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提示:没有密码请直接按确认"
            android:textColor="#468ED0"/>

    </RelativeLayout>


</RelativeLayout>

res/values/color

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <color name="vifrification">#00000000</color>   <!-- 透明 -->  

</resources>

res/values/styles

<!-- 设置dialog弹出,退出动画 -->
    <style name="dialogWindowAnim" parent="android:Animation" mce_bogus="1">  
        <item name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>  
        <item name="android:windowExitAnimation">@anim/dialog_exit_anim</item>  
    </style> 

res/drawable/yuanjiao

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#2cbcd6"/>
    <corners android:radius="5dp" />

    <stroke
        android:width="2px"
        android:color="#cccccc" />

</shape>

res/drawable/yuanjiao1

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#ffffff"/>
    <corners android:radius="5dp" />

    <stroke
        android:width="2px"
        android:color="#cccccc" />

</shape>

res/anim/dialog_enter_anim

<?xml version="1.0" encoding="utf-8"?>  

<!-- 退出时动画 -->  
<set xmlns:android="http://schemas.android.com/apk/res/android">  
    <scale   
        android:interpolator="@android:anim/accelerate_interpolator"  
        android:fromXScale="1.0"  
        android:toXScale="1.0"  
        android:fromYScale="0.0"  
        android:toYScale="1.0"  
        android:pivotX="0%"  
        android:pivotY="100%"  
        android:fillAfter="false"  
        android:duration="400"/>  
</set>

res/anim/dialog_exit_anim

<?xml version="1.0" encoding="utf-8"?>  

<!-- 弹出时动画 -->  
<set xmlns:android="http://schemas.android.com/apk/res/android">  
    <scale   
        android:interpolator="@android:anim/accelerate_interpolator"  
        android:fromXScale="1.0"  
        android:toXScale="1.0"  
        android:fromYScale="1.0"  
        android:toYScale="0.0"  
        android:pivotX="0%"  
        android:pivotY="100%"  
        android:fillAfter="false"  
        android:duration="400"/> 

</set>

点击这里下载Demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值