Android 自定义Dialog

来源:互联网 发布:免费手机网络电话软件 编辑:程序博客网 时间:2024/06/07 01:08

自定义Dialog

根据需求定义自己的布局Dialog

  • 定义布局

  • 定义样式

  • 创建类并继承Dialog

  • 使用Dialog

定义布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="300dp"    android:layout_height="wrap_content"    android:gravity="center"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:orientation="vertical">        <LinearLayout            android:layout_margin="15dp"            android:layout_width="match_parent"            android:orientation="vertical"            android:background="@drawable/bg_alertdialog_talklogistic"            android:layout_height="wrap_content">            <EditText                android:id="@+id/dialog_talklocation_remark"                android:layout_margin="10dp"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:background="@drawable/anniubg4_n"                android:textColor="@color/black"                android:gravity="start|top"                android:hint="@string/qtxdqwlbzxx"                android:minHeight="80dp"                android:padding="10dp"                android:textColorHint="@color/ztys21"                android:textSize="12sp" />            <TextView                android:id="@+id/dialog_talklocation_btn"                android:layout_width="match_parent"                android:layout_height="40dp"                android:layout_marginLeft="10dp"                android:layout_marginRight="10dp"                android:layout_marginTop="10dp"                android:textColor="@color/white"                android:text="@string/submitLocation"                android:gravity="center"                android:textSize="18sp"                android:layout_marginBottom="10dp"                android:background="@drawable/logistics_info_remarkbtnbg"/>        </LinearLayout>        <ImageView            android:id="@+id/logistics_info_close"            android:layout_marginTop="5dp"            android:layout_marginRight="5dp"            android:layout_width="25dp"            android:layout_height="25dp"            android:layout_alignParentRight="true"            android:src="@drawable/ic_talklogistics_close" /></RelativeLayout>

定义样式

    <style name="mystyle" parent="@android:style/Theme.Dialog">        <item name="android:windowFrame">@null</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowIsTranslucent">false</item>        <item name="android:windowNoTitle">true</item>        <item name="android:windowBackground">@color/logisticsInfoDialog</item>        <item name="android:backgroundDimEnabled">true</item>    </style>

创建类并继承Dialog

public class TalkLocationDialog extends Dialog {    public TalkLocationDialog(Context context) {        super(context);    }    public TalkLocationDialog(Context context, int theme) {        super(context, theme);    }    public static class Builder {        private Context context;        public Builder(Context context) {            this.context = context;        }        public TalkLocationDialog create() {            //主题可以换            final TalkLocationDialog dialog = new TalkLocationDialog(context,R.style.mystyle);            View layout = AppUtils.inflate(R.layout.alertdialog_talklocation);            dialog.addContentView(layout, new LinearLayout.LayoutParams(                    LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));            dialog.setContentView(layout);            return dialog;        }    }}

使用Dialog

TalkLocationDialog alertDialog = new TalkLocationDialog.Builder(WuLiuXinXiActivity.this).create();alertDialog.show();
原创粉丝点击