Dialog自定义样式及使用笔记

来源:互联网 发布:阿里云解析设置 编辑:程序博客网 时间:2024/05/21 17:29

AlertDialog与Dialog的使用:

自定义布局文件:layout_dialog.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/id_layout_alert"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@color/bg_green_Color"    android:orientation="vertical"><TextView        android:id="@+id/titleView"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@color/bg_slight_green_Color"        android:textSize="20sp"        android:textColor="@color/txt_green_Color"        android:text="确认删除吗?"        android:gravity="center"        android:paddingLeft="20dp"        android:paddingRight="20dp"        android:paddingBottom="10dp"        android:paddingTop="10dp"        android:ellipsize="marquee" /><LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:padding="10dp"        android:orientation="horizontal">        <Button            android:id="@+id/btn_confirm"            android:layout_width="0dp"            android:layout_weight="1"            android:layout_height="wrap_content"            android:layout_marginLeft="20dp"            android:layout_marginRight="20dp"            android:text="确定"            android:textSize="16sp"            android:textColor="@color/txt_green_Color"            android:padding="5dp"            android:background="@drawable/bg_button_selector"/>        <Button            android:id="@+id/btn_cancel"            android:layout_width="0dp"            android:layout_weight="1"            android:layout_height="wrap_content"            android:layout_marginRight="20dp"            android:textColor="@color/txt_green_Color"            android:text="取消"            android:textSize="16sp"            android:padding="5dp"            android:background="@drawable/bg_button_selector"/>    </LinearLayout></LinearLayout>

1、AlertDialog:

AlertDialog.Builder builder=new AlertDialog.Builder(context);AlertDialog mAlertDialog=builder.create();Window window = dialog.getWindow();window.setGravity(Gravity.BOTTOM);//设置dialog的显示位置mAlertDialog.show();View view=LayoutInflater.from(context).inflate(R.layout.layout_dialog,null);Button confirmBtn=(Button)view.findViewById(R.id.btn_confirm);Button cancelBtn=(Button)view.findViewById(R.id.btn_cancel);confirmBtn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {//TODO click operatormAlertDialog.dismiss();}});cancelBtn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {mAlertDialog.dismiss();}});mAlertDialog.setContentView(view);//该方法在调用show()方法之后调用

2、Dialog:
Dialog dialog=new Dialog(context,R.style.custom_dialog);dialog.setContentView(R.layout.layout_dialog);Button confirmBtn=(Button)dialog.findViewById(R.id.btn_confirm);Button cancelBtn=(Button)dialog.findViewById(R.id.btn_cancel);confirmBtn.setOnClickListener(new OnClickListener(){    @Override    public void onClick(View v) {      //TODO click operator      dialog.dismiss();    }});cancelBtn.setOnClickListener(new OnClickListener(){    @Override    public void onClick(View v) {      dialog.dismiss();    }});dialog.show();

注意:使用Dialog时dialog.getWindow().setGravity(Gravity.center)对dialog的位置显示并没有影响,如果想让Dialog居中,可以为其设置style,继承Theme.Dialog,就可以使其默认居中,style设置如下:
 <style name="custom_dialog" parent="android:Theme.Dialog" >        <item name="android:windowBackground">@android:color/transparent</item><!-- 窗口背景颜色 -->        <item name="android:windowIsTranslucent">true</item><!-- 窗口是否半透明——是(与第一条配合使用)-->        <item name="android:windowFrame">@null</item><!-- Dialog的windowFrame框为无  -->        <item name="android:backgroundDimEnabled">true</item><!-- 是否允许背景模糊  -->        <item name="android:windowNoTitle">true</item>        <item name="android:windowFullscreen">false</item>        <item name="android:windowContentOverlay">@null</item> <!--这个不设置的话,可能会出现边框黑线 -->        <!--<item name="android:windowIsFloating">true</item> 是否浮现在activity之上   多了这句话activity宽度就不会充满全屏-->    </style>




0 0