效果:

Android--自定义Dialog,仿IOS对话框样式_第1张图片


实现:

1.dialog_layout.xml:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:orientation="vertical"    android:background="@drawable/dialog_bg">        <RelativeLayout        android:layout_width="280dp"        android:layout_height="100dp"        android:id="@+id/layout_title"        android:gravity="center">        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/title"            android:text="11111"            android:textColor="@color/black"            android:gravity="center"/>    RelativeLayout>        <View        android:layout_width="280dp"        android:layout_height="1dp"        android:background="@color/grey"        android:layout_below="@+id/layout_title"        android:layout_marginBottom="10dp"/>        <RelativeLayout        android:id="@+id/bottomoll"        android:layout_width="280dp"        android:layout_height="wrap_content"        android:layout_below="@+id/layout_title">        <LinearLayout            android:layout_width="280dp"            android:layout_height="wrap_content">                        <Button                android:id="@+id/btn_cancel"                android:layout_width="0dp"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="取消"                android:textColor="@color/blue"                android:background="@null"                android:textSize="18sp"                android:paddingTop="10dp"                android:paddingBottom="10dp"/>            <View                android:layout_width="1dp"                android:layout_height="match_parent"                android:background="@color/grey"/>                        <Button                android:id="@+id/btn_exit"                android:layout_width="0dp"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="确定"                android:textColor="@color/blue"                android:background="@null"                android:textSize="18sp"/>        LinearLayout>    RelativeLayout>RelativeLayout>

2.在style.xml中设置dialog的样式:

<style name="mdialog" parent="android:style/Theme.Dialog">        <item name="android:windowBackground">@android:color/transparentitem>        <item name="android:windowNoTitle">trueitem>        <item name="android:backgroundDimEnabled">trueitem>style>

3.创建类继承Dialog:

public class ConstomDialog extends Dialog {    /**取消按钮*/    private Button button_cancel;    /**确认按钮*/    private Button button_exit;    /**标题文字*/    private TextView tv;    //构造方法    public ConstomDialog(Context context) {        super(context, R.style.mdialog);        //通过LayoutInflater获取布局        View view = LayoutInflater.from(getContext()).                inflate(R.layout.dialog_layout, null);        tv = (TextView) view.findViewById(R.id.title);        button_cancel = (Button) view.findViewById(R.id.btn_cancel);        button_exit = (Button) view.findViewById(R.id.btn_exit);        //设置显示的视图        setContentView(view);    }    /**     * 设置显示的标题文字     */    public void setTv(String content) {        tv.setText(content);    }    /**     * 取消按钮监听     * */    public void setOnCancelListener(View.OnClickListener listener){        button_cancel.setOnClickListener(listener);    }    /**     * 退出按钮监听     * */    public void setOnExitListener(View.OnClickListener listener){        button_exit.setOnClickListener(listener);    }}

4.使用ConstomDialog:

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //不显示系统的标题栏,        getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN,                WindowManager.LayoutParams.FLAG_FULLSCREEN );        setContentView(R.layout.activity_main);        findViewById(R.id.tv_showDialog).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                showDialog();            }        });    }    /**     * 弹出对话框     */    public void showDialog() {        //实例化自定义对话框        final ConstomDialog mdialog = new ConstomDialog(this);        //对话框中退出按钮事件        mdialog.setOnExitListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //如果对话框处于显示状态                if (mdialog.isShowing()) {                    //关闭对话框                    mdialog.dismiss();                    //关闭当前界面                    finish();                }            }        });        //对话框中取消按钮事件        mdialog.setOnCancelListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (mdialog != null && mdialog.isShowing()) {                    //关闭对话框                    mdialog.dismiss();                }            }        });        mdialog.show();    }}

更多相关文章

  1. android 单选(RadioGroup )复选(CheckBox)按钮的应用
  2. Android 标题栏添加返回按钮及响应
  3. 重写对话框dialog
  4. android 调用android系统的对话框控件
  5. 初识Android之(一)-自定义标题栏控件
  6. android之按钮单击事件及监听器的实现方式
  7. Android中悬浮按钮的实现(记录)
  8. android activity以对话框形式显示
  9. Android获取状态栏、标题栏、ActionBar以及屏幕的高度

随机推荐

  1. android 笔记 --- Android各种访问权限Pe
  2. QCom Camera Development
  3. Android(安卓)Apk 反编译,Apk 修改以后再
  4. Android(安卓)- 支持不同的设备 - 支持不
  5. 【android内核分析-启动】Android(安卓)
  6. Android中Input型输入设备驱动原理分析(
  7. Android(安卓)AIDL 跨进程服务 Proxy/Stu
  8. Android应用程序进程启动过程的源代码分
  9. Android(安卓)系统下模拟触点击的功能与
  10. Android(安卓)App 性能优化之图片优化