Android中使用自定义样式和显示位置的对话框Dialog

来源:互联网 发布:dns域名劫持工具 编辑:程序博客网 时间:2024/05/02 18:18

工作日志记录:Android中的dialog的使用并不少见,dialog也就是对话框的意思,对话框按照使用方式可以分为系统对话框和用户自定义对话框,按照使用功能分为用户操作提示对话框和任务进度对话框,这里总结一下自定义的用户操作对话框的使用方法:


1.先上效果图:


实现上图中的效果的代码如下,显示位置在屏幕的下方,这里就不进行过多的封装,需要的朋友自己去封装和抽取:


private void showDialog(Context context) {    registerDialog = new Dialog(context, R.style.MyDialog);    registerDialog.getWindow().setLayout(            WindowManager.LayoutParams.MATCH_PARENT,            WindowManager.LayoutParams.WRAP_CONTENT);    registerDialog.getWindow().setContentView(R.layout.diaolog_view_register);    //显示在屏幕的下方   registerDialog.getWindow().setGravity(Gravity.BOTTOM);    registerDialog.show();    //下面这句可以换成  View view=registerDialog.getWindow().getDecorView();   View view = View.inflate(this, R.layout.diaolog_view_register, null);    //拍照    tv_register_pz = (Button) registerDialog.getWindow().findViewById(R.id.tv_register_pz);    tv_register_pz.setOnClickListener(this);    // 从相册中选择    tv_register_xc = (Button) registerDialog.getWindow().findViewById(R.id.tv_register_xc);    tv_register_xc.setOnClickListener(this);    //取消    tv_register_qx = (Button) registerDialog.getWindow().findViewById(R.id.tv_register_qx);    tv_register_qx.setOnClickListener(this);}R.style.MyDialog:
<style name="MyDialog" parent="@android:style/Theme.Dialog">    <item name="android:windowBackground">@android:color/transparent</item>    <item name="android:windowFrame">@null</item>    <item name="android:windowNoTitle">true</item>    <item name="android:windowIsFloating">true</item>    <item name="android:windowContentOverlay">@null</item>    <item name="android:windowCloseOnTouchOutside">true</item></style>
R.layout.diaolog_view_register布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/transparent"    android:paddingBottom="@dimen/dimen_dp_10">    <LinearLayout        android:id="@+id/ll_duihuanbeijing"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_gravity="bottom"        android:background="@drawable/dialog_bg"        android:orientation="vertical">        <Button            android:id="@+id/tv_register_pz"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_marginTop="10dp"            android:layout_marginLeft="20dp"            android:layout_marginRight="20dp"            android:text="拍照"            android:textColor="@color/light_text_color"            android:padding="10dp"            android:textSize="15sp"            android:background="@color/white" />        <Button            android:id="@+id/tv_register_xc"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_marginTop="10dp"            android:layout_marginLeft="20dp"            android:layout_marginRight="20dp"            android:text="从相册中选择"            android:textColor="@color/light_text_color"            android:padding="10dp"            android:textSize="15sp"            android:background="@color/white" />        <Button            android:id="@+id/tv_register_qx"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_marginTop="10dp"            android:layout_marginLeft="20dp"            android:layout_marginRight="20dp"            android:layout_marginBottom="10dp"            android:text="取消"            android:textColor="@color/light_text_color"            android:padding="10dp"            android:textSize="15sp"            android:background="@color/white" />    </LinearLayout></RelativeLayout>


2.显示在屏幕中间的dialog:
效果图:应涉及到应用内容问题,只截半屏,懂意思就行。

实现代码如下:
private void showDeleteFriendsDialog(Context context) {    final Dialog dialog=new Dialog(context,R.style.MyDialogOne);    Window window=dialog.getWindow();    window.setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.WRAP_CONTENT);    window.setContentView(R.layout.dialog_btn_two);    View decorView=window.getDecorView();    TextView tv_content=(TextView) decorView.findViewById(R.id.tv_content);    TextView btn_left=(TextView) decorView.findViewById(R.id.btn_left);    TextView btn_right=(TextView) decorView.findViewById(R.id.btn_right);    tv_content.setText("确定要删除好友关系吗?");    btn_left.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            dialog.dismiss();        }    });    btn_right.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            //删除好友操作                        dialog.dismiss();                    }    });    dialog.show();}R.style.MyDialogOne:(与上面一样)
<style name="MyDialogOne" parent="@android:style/Theme.Dialog">    <item name="android:windowBackground">@android:color/transparent</item>    <item name="android:windowFrame">@null</item>    <item name="android:windowNoTitle">true</item>    <item name="android:windowIsFloating">true</item>    <item name="android:windowContentOverlay">@null</item>    <item name="android:windowCloseOnTouchOutside">true</item></style>

R.layout.dialog_btn_tow:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="270dp"    android:layout_height="wrap_content"    android:layout_gravity="center_horizontal"    android:background="@drawable/dialog_bg"    android:orientation="vertical"    >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_horizontal"        android:layout_marginTop="20dp"        android:text="提示"        android:textColor="#030303"        android:textSize="18sp" />    <TextView        android:id="@+id/tv_content"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="30dp"        android:layout_marginBottom="30dp"        android:gravity="center"        android:textColor="#030303"        android:textSize="15sp" />    <View        android:layout_width="match_parent"        android:layout_height="0.5dp"        android:layout_marginTop="10dp"        android:background="#c74d4d4d" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="50dp"        android:orientation="horizontal" >        <TextView            android:id="@+id/btn_left"            android:layout_width="0dp"            android:layout_height="50dp"            android:layout_weight="1"            android:layout_gravity="center"            android:gravity="center"            android:text="否"            android:textColor="#666666"            android:textSize="18sp" />        <View            android:layout_width="0.5dp"            android:layout_height="match_parent"            android:background="#c74d4d4d"/>        <TextView            android:id="@+id/btn_right"            android:layout_width="0dp"            android:layout_height="50dp"            android:layout_weight="1"            android:layout_gravity="center"            android:gravity="center"            android:text="是"            android:textColor="#0076ff"            android:textSize="18sp" />    </LinearLayout></LinearLayout>

R.drawabel.dialog_bg:(这是一个shape图形,圆角矩形)

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle"    >    <corners android:radius="20dp" />    <stroke android:color="#FFFFFF" android:width="0.5dp"/>    <solid android:color="#FFFFFF"/></shape>


阅读全文
0 0
原创粉丝点击