当前位置:酷酷问答>百科问答>Android开发之深入理解AlertDialog使用说明

Android开发之深入理解AlertDialog使用说明

2024-12-24 02:49:28 编辑:zane 浏览量:566

Android开发之深入理解AlertDialog使用说明

的有关信息介绍如下:

Android开发之深入理解AlertDialog使用说明

弹窗通常用于提示用户进行某种操作,比如:点击分享按钮,弹窗分享对话框;双击返回按钮,弹窗退出对话框;下载文件,提示下载对话框等等,分享对话框/退出对话框/下载对话框等等,都可以直接使用AlertDialog实现,类似的效果如下图:

TeachCourse第一次接触AlertDialog,不理解为什么无法直接通过new关键字获取对象,而是调用方法:new AlertDialog.Builder.create(),后来深入学习 博客总结,知道获取AlertDialog对象的逻辑。这个时候容易让人疑惑的是:如何设置对话框的属性?比如:对话框标题,对话框消息,对话框按钮等等,第一种方法,如下图:

第一种设置对话框标题、对话框消息内容、对话框按钮的方式,先获得AlertDialog对象,然后设置对象的属性值;第二种方法,使用AlertDialog.Builder构造器,构造一个对话框,然后再创建AlertDialog对象,最后调用show或dismiss显示或隐藏,如下图:

钊林在之前的博客中总结时,发现这两种方式的对话框默认情况,对话框水平垂直居中显示,对话框与左右窗体之间有一小段距离,效果图如下:

默认AlertDialog设计出来的弹窗不符合钊林实际开发的需要,如何修改AlertDialog对话框默认属性,实现对话框内容宽度布满屏幕,高度根据内容自适应,类似文章开头点击?

那么首先来学习一下如何设置Window对象屏幕宽度/高度的三种方式,第一种方式:setLayout()。获得Window对象后,设置Window对象的布局参数,即调用setLayout(int width,int height)方法,width取值:MATCH_PARENT/WRAP_CONTENT,同理height同样取值:MATCH_PARENT/WRAP_CONTENT,具体代码如下:

第二种方式:setAttributes(),获得Window对象后,设置Window对象的属性值,即调用setAttributes(LayoutParams)方法,LayoutParams的width变量取值:MATCH_PARENT/WRAP_CONTENT,同理height变量取值:MATCH_PARENT/WRAP_CONTENT,关键代码如下图:

第三种方式:setLayout(),这种方式和第一种方式一样都是调用setLayout方法,不同的是指定WindowManager对象的固定高度,在设计类似底部分享弹窗时,固定高度,关键代码如下图:

Android的基本动画包括:渐变动画/平移动画/缩放动画/旋转动画/组合动画,更多内容可以参考TeachCourse博客《Android代码绘制虚线、圆角、渐变和阴影效果图》,点击“分享”按钮,弹窗从底部弹窗,再次点击弹窗消失,设置的动画——平移动画,代码如下:

在style.xml文件中添加Window进入和退出分别引用的动画类型,代码如下:

在Window属性设置中调用setContentView()指定View对象,同时调用setWindowAnimations()指定添加的动画,代码如下:

定义MyDialogActivity实现AlertDialog同样的功能,类似点击“分享按钮”,从窗口底部弹出弹窗,点击“取消”弹窗消息,最终效果和AlertDialog实现的弹窗效果一模一样,如下图:

定义布局popup_main.xml,设计弹窗最终期待展示的样子,在布局文件中可以 添加多个控件,多个平台的分享按钮,比如:微信/微博/空间/人人等,代码如下:

定义Theme样式,Theme样式被定义在style.xml文件中,在AndroidManifest.xml文件中的标签的android:theme=""属性中引用,代码如下:

实现MyDialogActivity具体功能,关键代码如下图:

版权声明:文章由 酷酷问答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kukuwd.com/answer/166382.html
热门文章