布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp"
>
<TextView
android:id="@+id/btn_cancel"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:text="取消"
android:textSize="15sp"
/>
<TextView
android:id="@+id/btn_sure"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:text="确定"
android:textColor="@color/green"
android:textSize="15sp"
/>
</RelativeLayout>
<DatePicker
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/datepicker"
android:calendarViewShown="false" //false不会出现日历选择
></DatePicker>
</LinearLayout>
样式
<style name="Dialog" parent="android:style/Theme.Dialog">
<item name="android:background">#00000000</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
</style>
代码
private void birthDialog() {
final AlertDialog builder = new AlertDialog.Builder(this, R.style.Dialog).create(); //
builder.show();
builder.getWindow().setContentView(R.layout.dialog_datepicker);
LayoutInflater factory = LayoutInflater.from(this);
View view = factory.inflate(R.layout.dialog_datepicker, null);
builder.getWindow().setContentView(view);
final DatePicker datePicker = (DatePicker) view.findViewById(R.id.datepicker);
TextView btn_sure = (TextView) view.findViewById(R.id.btn_sure);
TextView btn_cancel = (TextView) view.findViewById(R.id.btn_cancel);
Window dialogWindow = builder.getWindow();
dialogWindow.setGravity(Gravity.BOTTOM);//显示在底部
WindowManager m = getWindowManager();
Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值
p.height = (int) (d.getHeight() * 0.5); // 高度设置为屏幕的0.5
p.width = d.getWidth(); // 宽度设置为屏幕的0.65
dialogWindow.setAttributes(p);
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override //取消选择
public void onClick(View v) {
builder.dismiss();
}
});
btn_sure.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv_birth.setText(datePicker.getYear()+"年"+(datePicker.getMonth()+1)+"月"+datePicker.getDayOfMonth()+"日");
builder.dismiss();
}
});
}