Android系统提供的对话框,默认是方的,很不美观,一般我们都是自定义圆角对话框。下面看一下圆角对话框的简单试用。
先上效果图:
很简单,就是activity上一个按钮,点击按钮弹出圆角对话框。
下面看代码:
最最重要的style:在values/style中添加:
<style name="mydialog" parent="android:style/Theme.Dialog">
<!-- 背景透明,设置圆角对话框必须设置背景透明,否则四角会有背景色小块-->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 没有标题 -->
<item name="android:windowNoTitle">true</item>
<!-- 背景模糊 -->
<item name="android:backgroundDimEnabled">true</item>
</style>
drawable/dialog_bg文件:用shape写圆角背景
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp"/>
<solid android:color="@color/colorWhite" />
</shape>
dialog的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:minWidth="280dp"
android:background="@drawable/dialog_bg"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="40dp"
android:background="@drawable/edittext_bg"
android:padding="10dp"
android:singleLine="true"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/colorGray"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_cancel"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:gravity="center"
android:text="取消"
android:textSize="16sp"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/colorGray"/>
<TextView
android:id="@+id/tv_positive"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:gravity="center"
android:text="确定"
android:textSize="16sp"/>
</LinearLayout>
</LinearLayout>
应用:activity中代码:
//点击按钮,弹出圆角对话框
public void showDialog(View view) {
mDialog = new Dialog(this,R.style.mydialog);
Window window = mDialog.getWindow();
View contentView = this.getLayoutInflater().inflate(R.layout.dialog, null);
TextView tv_title = (TextView) contentView.findViewById(R.id.tv_title);
TextView tv_cancel = (TextView) contentView.findViewById(R.id.tv_cancel);
TextView tv_postive = (TextView) contentView.findViewById(R.id.tv_positive);
mDialog.setContentView(contentView);
tv_title.setText("标题");
tv_cancel.setOnClickListener(this);
tv_postive.setOnClickListener(this);
mDialog.show();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_cancel:
mDialog.dismiss();
break;
case R.id.tv_positive:
//TO Do Something
Toast.makeText(this,"确定",Toast.LENGTH_SHORT).show();
mDialog.dismiss();
break;
}
}