項目中用到的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>