自定义dialog二三事

来源:互联网 发布:在美国如何使用淘宝 编辑:程序博客网 时间:2024/05/16 17:04

效果图:

这里写图片描述

代码:

public class ViewActivity extends Activity implements View.OnClickListener {    Dialog mDialog;    @Override    protected void onCreate(Bundle savedInstanceState) {        requestWindowFeature(Window.FEATURE_NO_TITLE);        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_view);        initDialog(this);    }    @Override    public void onClick(View v) {        mDialog.show();    }    public void initDialog(Context context) {        View view = LayoutInflater.from(context).inflate(R.layout.view_share, null);        mDialog = new Dialog(context, R.style.Translucent_Dialog);        mDialog.setContentView(view);        ImageView iv_cancel = (ImageView) view.findViewById(R.id.iv_cancel);        iv_cancel.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                mDialog.dismiss();            }        });    }}

透明背景的样式:

<style name="Translucent_Dialog" parent="@android:style/Theme.Dialog">        <!-- 设置自定义布局的背景透明 -->        <item name="android:background">@android:color/transparent</item>        <!-- 设置window背景透明,也就是去边框 -->        <item name="android:windowBackground">@android:color/transparent</item>        <!-- 设置Activity背景是否变灰 -->        <item name="android:backgroundDimEnabled">false</item>    </style>

dialog布局:

<?xml version="1.0" encoding="utf-8"?><!-- 注意:父控件里没有使用gravity属性 --><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/rl_share"    android:layout_width="match_parent"    android:layout_height="match_parent">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="180dp"        android:layout_marginLeft="10dp"        android:layout_marginRight="25dp"        android:layout_marginTop="15dp"        android:background="@drawable/view_dialog_bg"        android:gravity="center">        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="pengkv"            android:textColor="#000"            android:textSize="20dp" />    </LinearLayout>    <ImageView        android:id="@+id/iv_cancel"        android:layout_width="40dp"        android:layout_height="40dp"        android:layout_alignParentRight="true"        android:layout_marginRight="10dp"        android:src="@drawable/ic_cancel" /></RelativeLayout>

更改backgroundDimEnabled可以去掉灰色背景,效果如图:

这里写图片描述

tip:

//想要有这种透明效果的对话框时,不用使用AlertDialog.Builder创建dialog,否则效果会异常
0 0
原创粉丝点击