天天看點

項目中---關于AlertDialog的顯示

項目中用到的AlertDialog自定義相關的内容:

因為很多頁面要用到這個打電話的dialog,是以做成一個utils,直接調用。

public static void showFindAitDialog(final Context context) {
		View view = View.inflate(context, R.layout.dialog, null);

		Button noButton = (Button) view.findViewById(R.id.dialog_btn_no);
		Button yesButton = (Button) view.findViewById(R.id.dialog_btn_yes);
		TextView titleTV = (TextView) view.findViewById(R.id.dialog_tv_title);
		titleTV.setText("call我,有驚喜哦!!!");

		noButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				log.dismiss();
			}
		});

		yesButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				log.dismiss();
				// 用intent啟動撥打電話
				String number = "400xxxxxx";
				Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + number));
				context.startActivity(intent);
			}
		});
		log = new AlertDialog.Builder(context).show();
		log.setContentView(view);

		WindowManager.LayoutParams lp = log.getWindow().getAttributes();
		// 模糊度
		log.getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
				WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
		log.getWindow().setAttributes(lp);
		lp.alpha = 0.8f;
		lp.dimAmount = 0.5f;

	}
           

layout中的dialog就是自定義的視圖,直接加載即可。

最後一段代碼是設定彈出dialog後背景的半透明效果:

WindowManager.LayoutParams lp = log.getWindow().getAttributes();
		// 模糊度
		log.getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
				WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
		log.getWindow().setAttributes(lp);
		lp.alpha = 0.8f;
		lp.dimAmount = 0.5f;
           

關于alertdialog彈出後居中顯示:

設定dialog的寬和高,之後在dialog外再加一個布局,如LinearLayout,設定這個LinearLayout的寬和高為自适應,這樣dialog就能顯示設定好的寬和高了。

再在linearlayout中和dialog中加上一行代碼: android:layout_gravity="center",這樣就可以居中顯示了。

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

    <LinearLayout
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/update_shape"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/edit_project_title"
            android:layout_width="match_parent"
            android:layout_height="43dp"
            android:layout_gravity="center_horizontal"
            android:gravity="center"
            android:textColor="@color/main_blue_color"
            android:textSize="18sp" />

        <View
            android:id="@+id/update_notification_splittor"
            android:layout_width="match_parent"
            android:layout_height="2dp"
            android:layout_gravity="center_horizontal"
            android:background="@color/main_blue_color" />

        <ListView
            android:id="@+id/edit_project_pop_lv"
            android:layout_width="match_parent"
            android:layout_height="400dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:divider="@color/product_line"
            android:dividerHeight="1px"
            android:scrollbars="none" >
        </ListView>
    </LinearLayout>

</FrameLayout>