android上dialog横屏下实现全屏效果
来源:互联网 发布:simulink 电气端口 编辑:程序博客网 时间:2024/05/16 12:05
其实在android上实现全屏效果也是很简单滴,主要用到了android为我们提供的样式,下面我贴代码了,算是自己的一个记录。
定义样式文件
在styles.xml中定义如下两个样式:
<style name="preview_dialog" parent="@android:style/Theme.Material.Light.Dialog"> <item name="android:windowTranslucentNavigation">false</item></style><style name="fullScreen_dialog" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"> <item name="android:windowTranslucentNavigation">false</item></style>
显示dialog
int currentOrientation = MainActivity.this.getResources().getConfiguration().orientation;// 根据当前的屏幕是否横屏,切换当前需要用到的样式if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) { mCurrentStyle = R.style.fullScreen_dialog;} else { mCurrentStyle = R.style.preview_dialog;} if (null != mPreviewDialog) { mPreviewDialog.dismiss(); mPreviewDialog = null; } showPreviewDialog(); mIsShowPreview = true;
showPreviewDialog
showPreviewDialog是用来显示dialog的方法。
private Dialog mPreviewDialog = null;private String mContent = "this is dialog content.....";private Drawable mAlertIcon = null;private int mCurrentStyle;private boolean mIsShowPreview = false;public void showPreviewDialog() { mPreviewDialog = new Dialog(MainActivity.this,mCurrentStyle); mPreviewDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); View alertReimderView = LayoutInflater.from(MainActivity.this).inflate( R.layout.cell_broadcast_reminder, null); ((TextView) alertReimderView.findViewById(R.id.alertTitle)) .setText(R.string.app_name); ((ImageView) alertReimderView.findViewById(R.id.icon)) .setImageDrawable(getResources().getDrawable(R.drawable.ic_default_contact)); ((TextView) alertReimderView.findViewById(R.id.message)) .setText(mContent); Button okBtn = (Button) alertReimderView.findViewById(R.id.dismissButton); okBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (null != mPreviewDialog) { mPreviewDialog.dismiss(); mPreviewDialog = null; mIsShowPreview = false; } } }); mPreviewDialog.setContentView(alertReimderView, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); mPreviewDialog.setCancelable(false); mPreviewDialog.show();}
监听切换屏幕方向
需要在当前的activity中添加如下配置:
android:configChanges="orientation|screenSize|keyboardHidden"
- 重写onConfigurationChanged方法
@Overridepublic void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Log.d(TAG, "the secondactivity onconfiguration runs newConfig.orientation is :"+newConfig.orientation); if (mIsShowPreview) { if (newConfig.orientation==Configuration.ORIENTATION_PORTRAIT) { if (mCurrentStyle == R.style.fullScreen_dialog) { mCurrentStyle = R.style.preview_dialog; } } if (newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE) { if (mCurrentStyle == R.style.preview_dialog) { mCurrentStyle = R.style.fullScreen_dialog; } } if (null != mPreviewDialog) { mPreviewDialog.dismiss(); mPreviewDialog = null; } showPreviewDialog(); }}
1 0
- android上dialog横屏下实现全屏效果
- android 超简单实现dialog全屏显示
- Android中全屏Dialog的实现
- 全屏Dialog实现方法
- Android dialog全屏
- Android Dialog 全屏
- Android dialog 全屏
- Android dialog全屏显示
- android - 自定义全屏dialog
- Android Dialog全屏
- Android全屏Dialog
- 【Android】实现全屏、无标题栏效果
- Android自定义Dialog实现弹出二维码效果
- Android的dialog和实现点击效果
- Android中让Dialog全屏
- 关于Android Dialog全屏显示
- Android中让Dialog全屏
- Android中让Dialog全屏
- 项目记录21-- 原来c#框架mediator改lua--02
- 推荐一个清理自己电脑磁盘的磁盘容量图形化软件--WinDirStat
- BZOJ_P3110 [ZJOI2013]K大数查询(线段树+整体二分)
- BZOJ3716: [PA2014]Muzeum
- 控制器的数据传递--block和delegate如何选择
- android上dialog横屏下实现全屏效果
- android四大组件之contentProvider
- android提示Toast的使用
- CodeForces 630 N. Forecast(水~)
- 为什么引入Memcached?
- android-文件存储
- 【机器学习算法实现】logistic回归__基于Python和Numpy函数库
- 让人短命的4件事你做过几件?
- ffmpeg解码核心代码理解