Android全屏对话框(附带延时关闭效果)
16lz
2021-01-23
自定义style,设置全屏属性
[html] view plain copy print ?
- <resources>
- <stylename="AppTheme"parent="android:Theme.Black"/>
- <stylename="processDialog">
- <itemname="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
- <itemname="android:windowFullscreen">true</item>
- <itemname="android:windowIsTranslucent">false</item><!--半透明-->
- <itemname="android:windowNoTitle">true</item><!--无标题-->
- <itemname="android:windowBackground">@android:color/transparent</item><!--背景透明-->
- <itemname="android:backgroundDimEnabled">true</item><!--模糊-->
- <itemname="android:backgroundDimAmount">0.5</item>
- <itemname="android:alpha">0.3</item>
- </style>
- </resources>
代码中加载这个view并把view set到dialog上,这样全屏的dialog就完成了
[java] view plain copy print ?
- <spanstyle="white-space:pre"></span>mView=LayoutInflater.from(this).inflate(R.layout.process_dialog,null);
- processDialog=newDialog(LogActivity.this,R.style.processDialog);
- processDialog.setCancelable(false);
- processDialog.setContentView(mView);
- <spanstyle="white-space:pre"></span>mAutoCloseDialog=newAutoCloseDialog(processDialog);
- <spanstyle="white-space:pre"></span>mAutoCloseDialog.show(Prefs.DIALOG_DISPLAY_TIME);
接下来用一个封装好的类,做一个延时关闭的效果
[java] view plain copy print ?
- importjava.util.concurrent.Executors;
- importjava.util.concurrent.ScheduledExecutorService;
- importjava.util.concurrent.TimeUnit;
- importandroid.app.Dialog;
- publicclassAutoCloseDialog{
- privateDialogdialog;
- privateScheduledExecutorServiceexecutor=Executors.newSingleThreadScheduledExecutor();
- publicAutoCloseDialog(Dialogdialog){
- this.dialog=dialog;
- }
- publicvoidshow(longduration){
- Runnablerunner=newRunnable(){
- publicvoidrun(){
- dialog.dismiss();
- }
- };
- executor.schedule(runner,duration,TimeUnit.MILLISECONDS);
- dialog.show();
- }
- }
更多相关文章
- android 启动延迟加载画面
- Android大图片加载处理
- RelativeLayoutd 的属性
- Android 属性动画中心点无限循环
- Android 设置全屏,画图,加载位图
- android 网络异步加载
- 『ANDROID』反射取子类、父类 属性
- API 25 (Android 7.1.1 API) widget.ImageView——属性分析