天天看点

项目中---关于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>