您的位置:首页 > 移动开发 > Android开发

自定义弹出框Dialog

2016-12-21 13:22 381 查看
最近在做一个项目,需要用到弹出框,但是系统的AlertDialog,PopupWindow等等均不能满足要求,于是自定义的问题就来了,刚开始使用的AlertDialog来修改样式,但是无法去除系统的分割线,至少我是没找到方法,如果谁知道请不吝赐教,最后使用Dialog成功的定义出来了,废话不多说,看效果图吧。



直接上代码:

1.自定义的布局title.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="@dimen/dimen_10dp"
android:layout_marginTop="10dp"
android:text="提示"
android:textColor="#000"
android:textSize="16sp" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="@dimen/dimen_5dp"
android:gravity="center"
android:text="确定要退出登陆吗?"
android:textColor="#000"
android:textSize="16sp" />

<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/dimen_1dp"
android:background="#999999" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
android:id="@+id/tv_cancle"
android:layout_width="@dimen/dimen_0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:padding="@dimen/dimen_10dp"
android:text="取消"
android:textColor="#0F82FF"
android:textSize="18sp" />

<ImageView
android:layout_width="@dimen/dimen_1dp"
android:layout_height="match_parent"
android:background="#999999" />

<TextView
android:id="@+id/tv_ok"
android:layout_width="@dimen/dimen_0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:padding="@dimen/dimen_10dp"
android:text="确定"
android:textColor="#0F82FF"
android:textSize="18sp"
android:typeface="monospace" />
</LinearLayout>

</LinearLayout>

2.在style里面添加如下属性,一会要引用:
<style name="Translucent_Dialog" parent="@android:style/Theme.Dialog">
<item name="android:background">@android:color/transparent</item>
<!--颜色可以自己设置在color里面-->
<item name="android:windowBackground">@color/click_bg_normal</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
3.Java代码部分:
View view = View.inflate(getActivity(), R.layout.title, null);
TextView tv_cancle = (TextView) view.findViewById(R.id.tv_cancle);
TextView tv_ok = (TextView) view.findViewById(R.id.tv_ok);
final Dialog mDialog = new Dialog(getActivity(), R.style.Translucent_Dialog);
//去除标题的位置,否则无论你怎么设置都会出现一片空白的位置
mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
mDialog.setTitle("提示");
mDialog.setContentView(view);
mDialog.setCanceledOnTouchOutside(false);
mDialog.show();
// 设置dialog的宽度
WindowManager.LayoutParams params = mDialog.getWindow().getAttributes();
params.width = 500;
params.height = 220;
mDialog.getWindow().setAttributes(params);

tv_cancle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDialog.dismiss();
}
});

tv_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editor.remove("token").commit();
mDialog.dismiss();
Intent intent = new Intent(settingsFragmentActivity, DibuDaohangActivity.class);
intent.putExtra("code", -1);
startActivity(intent);
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息