常用程式碼整理:Android 常用彈窗整理
阿新 • • 發佈:2018-12-17
說明:大部分內容都是參考別的文章,這裡做整理是為了以後的程式設計有實用的模板,可以即需即用。
一、自定義 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>