最近在做一個項目,需要用到彈出框,但是系統的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);
}
});