import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout.LayoutParams;
public class PayDialog extends Activity {
private ImageButton iv_cancle;
private Button btn_zhifubao,btn_weixin,btn_ok;
private Button button;
private Dialog cardDLG;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity1);
//调用方法
dialog();
}
private void dialog() {
button = (Button) findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final View view1 = layout.inflate(R.layout.activity_paydialog, null);
btn_ok = (Button)view1.findViewById(R.id.btn_ok);
btn_weixin = (Button)view1.findViewById(R.id.btn_weixin);
btn_zhifubao = (Button)view1.findViewById(R.id.btn_zhifubao);
iv_cancle = (ImageButton)view1.findViewById(R.id.iv_cancle);
btn_ok.setOnClickListener(new OnClickListeneriml());
btn_weixin.setOnClickListener(new OnClickListeneriml());
btn_zhifubao.setOnClickListener(new OnClickListeneriml());
iv_cancle.setOnClickListener(new OnClickListeneriml());
cardDLG = new AlertDialog.Builder(PayDialog.this).create();
cardDLG.show();
cardDLG.getWindow().setContentView(view1);
Window window = cardDLG.getWindow(); //这是一个windows对象
//红色字体表示 自定义的dialog对话框
//底部弹出对话框
cardDLG.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
// 设置弹出的动画效果
cardDLG.getWindow().setWindowAnimations(R.style.AnimBottom);
WindowManager.LayoutParams wlp = cardDLG.getWindow().getAttributes();
wlp.gravity = Gravity.BOTTOM;
cardDLG.getWindow().setAttributes(wlp);
//以上红色字体是实现底部弹出对话框
}});
}
public class OnClickListeneriml implements OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_zhifubao:
btn_zhifubao.setBackgroundColor(Color.rgb(0, 150, 211));
btn_weixin.setBackgroundColor(Color.rgb(208, 208, 208));
break;
case R.id.btn_weixin:
btn_weixin.setBackgroundColor(Color.rgb(15, 205, 26));
btn_zhifubao.setBackgroundColor(Color.rgb(208, 208, 208));
break;
case R.id.btn_ok:
btn_ok.setBackgroundColor(Color.rgb(255, 90, 0));
break;
case R.id.iv_cancle:
cardDLG.dismiss();
break;
default:
break;
}
}
}
}
<style name="AnimBottom" parent="@android:style/Animation">
<item name="android:windowEnterAnimation">@anim/push_bottom_in</item>
<item name="android:windowExitAnimation">@anim/push_bottom_out</item>
</style>
//以上红色字体是配置动画进出效果的样式
在res文件夹下新建一个anim文件夹
分别对应
push_bottom_in.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- 上下滑入式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromYDelta="100%p"
android:toYDelta="0" />
</set>
push_bottom_out.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- 上下滑入式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromYDelta="0"
android:toYDelta="100%p" />
</set>