1. 程式人生 > >常用程式碼整理:Android 常用彈窗整理

常用程式碼整理:Android 常用彈窗整理

說明:大部分內容都是參考別的文章,這裡做整理是為了以後的程式設計有實用的模板,可以即需即用。

一、自定義 UI 的 Dialog

程式碼:

	private void showDialog() {
        final Dialog dialog = new Dialog(this, R.style.NormalDialogStyle);
        View view = View.inflate(this, R.layout.dialog_custom, null);
        TextView cancel = (TextView) view.findViewById(R.
id.bt_cancel); TextView confirm = (TextView) view.findViewById(R.id.bt_confirm); dialog.setContentView(view); // 設定點選對話方塊外部是否關閉對話方塊 dialog.setCanceledOnTouchOutside(true); // 設定對話方塊的大小 Window dialogWindow = dialog.getWindow(); WindowManager.LayoutParams lp =
dialogWindow.getAttributes(); lp.width = WindowManager.LayoutParams.WRAP_CONTENT; lp.height = WindowManager.LayoutParams.WRAP_CONTENT; lp.gravity = Gravity.CENTER; dialogWindow.setAttributes(lp); cancel.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) { dialog.dismiss(); } }); confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.show(); }

styles.xml:

<!-- dialog 對話方塊的樣式 -->
    <style name="NormalDialogStyle">
        <!-- 對話方塊背景 -->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 邊框 -->
        <item name="android:windowFrame">@null</item>
        <!-- 沒有標題 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 是否浮現在 Activity 之上 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 背景透明 -->
        <item name="android:windowIsTranslucent">false</item>
        <!-- 是否有覆蓋 -->
        <item name="android:windowContentOverlay">@null</item>
        <!-- 進出的顯示動畫 -->
        <!--<item name="android:windowAnimationStyle">@style/normalDialogAnim</item>-->
        <!-- 背景變暗 -->
        <item name="android:backgroundDimEnabled">true</item>
    </style>

佈局檔案:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_solid_r4_ffffff">

    <ImageView
        android:id="@+id/iv_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="22dp"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/tv_tip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/iv_icon"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="13dp"
        android:text="提示內容" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_tip"
        android:layout_marginBottom="20dp"
        android:layout_marginTop="20dp"
        android:gravity="center">

        <Button
            android:id="@+id/bt_cancel"
            android:layout_width="100dp"
            android:layout_height="35dp"
            android:layout_marginRight="12dp"
            android:background="@drawable/bg_solid_r4_959595"
            android:text="@string/common_return"
            android:textColor="@color/white"
            android:textSize="16dp" />

        <Button
            android:id="@+id/bt_confirm"
            android:layout_width="100dp"
            android:layout_height="35dp"
            android:layout_marginLeft="12dp"
            android:background="@drawable/bg_solid_r4_e52848"
            android:text="@string/common_confirm"
            android:textColor="@color/white"
            android:textSize="16dp" />

    </LinearLayout>

</RelativeLayout>