DialogUtil:
public class DialogUtil {
private Dialog dialog;
private View inflate;
public void showRightDialog(Context context) {
//自定義dialog顯示布局
inflate = LayoutInflater.from(context).inflate(R.layout.dialog_right, null);
//自定義dialog顯示風格
dialog = new Dialog(context, R.style.DialogRight);
//彈窗點擊周圍空白處彈出層自動消失彈窗消失(false時為點擊周圍空白處彈出層不自動消失)
dialog.setCanceledOnTouchOutside(true);
//將布局設定給Dialog
dialog.setContentView(inflate);
//獲取當前Activity所在的表單
Window window = dialog.getWindow();
if (Build.VERSION.SDK_INT >= 21) {
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.RIGHT;
wlp.width = WindowManager.LayoutParams.WRAP_CONTENT;
wlp.height = WindowManager.LayoutParams.MATCH_PARENT;
window.setAttributes(wlp);
dialog.show();
}
//關閉dialog時呼叫
public void close() {
if (dialog != null) {
dialog.dismiss();
dialog = null;
}
}
}
dialog_right:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_245"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="@dimen/dp_245"
android:layout_height="match_parent"
android:background="@drawable/qiehuan_ertong"
android:orientation="vertical">
<RelativeLayout
android:layout_width="@dimen/dp_245"
android:layout_height="@dimen/dp_35">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="添加換尿布記錄"
android:textColor="@color/white"
android:textSize="@dimen/dp_11" />
</RelativeLayout>
<RelativeLayout
android:layout_width="@dimen/dp_245"
android:layout_height="match_parent"
android:background="@drawable/border_top_white_5">
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
風格type:
<!--位于右側dialog的風格-->
<style name="DialogRight" parent="Theme.AppCompat.Light.NoActionBar">
<!-- 背景透明 -->
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<!-- 浮于Activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 邊框 -->
<item name="android:windowFrame">@null</item>
<!-- Dialog以外的區域模糊效果 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 無標題 -->
<item name="android:windowNoTitle">true</item>
<!-- 半透明 -->
<item name="android:windowIsTranslucent">true</item>
<!--點擊dialog以外區域關閉彈窗-->
<item name="android:windowCloseOnTouchOutside">true</item>
<!-- Dialog進入及退出影片 -->
<item name="android:windowAnimationStyle">@style/ActionSheetDialogRight</item>
</style>
<!-- ActionSheet進出影片 -->
<style name="ActionSheetDialogRight" parent="@android:style/Animation.Dialog">
<item name="android:windowEnterAnimation">@anim/dialog_right_in</item>
<item name="android:windowExitAnimation">@anim/dialog_right_out</item>
</style>
dialog_right_in:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="1.0"
android:toYScale="1.0"
android:pivotX="100%"
android:pivotY="0%"
android:fillAfter="false"
android:duration="300"/>
</set>
dialog_right_out:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="0.0"
android:fromYScale="1.0"
android:toYScale="1.0"
android:pivotX="100%"
android:pivotY="0%"
android:fillAfter="false"
android:duration="200"/>
</set>
activity或fragment中呼叫展示:
DialogUtil dialogUtil = new DialogUtil();
dialogUtil.showRightDialog(getActivity());
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/293757.html
標籤:其他
上一篇:H5頁面呼叫微信掃一掃
