android自定义相对复杂dialog
之前写了两篇关于Dialog的算是文章吧(2333),分别是:
1、 Android 系统原生dialog使用
2、 Android dialog Activity 使用
下面开始第三篇:相对复杂的自定义dialog。
一、转圈加载 dialog
见过大佬自己自定义的的 dialog ,也就是自己画出来的,额,楼主比较渣、楼主搞不了、我比较怂(一看就是有自知之明的好楼主)。但是呢,我还不服输,于是楼主用了偷懒的方法,废话不说,开干:
1、画个布局 即 layout.xml 文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:tools="http://schemas.android.com/tools" android:background="@drawable/shape_wait_dialog" android:gravity="center" android:orientation="vertical" android:padding="20dp"> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateDrawable="@drawable/anim_dialog_wait" /> <TextView android:id="@+id/tv_waitDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:singleLine="true" tools:text="请稍等,拼命中..." android:textColor="#1296DB" android:textSize="14sp" /> </LinearLayout>
这里有一个图标:
对了,告诉各位一个很好的图标网站哈,不知道小伙伴一定要收藏,如果你家ui不在你可以自己去搞:
阿里妈妈 MUX
2、图片的旋转动画
在 drawable 文件夹下创建一个动画文件 当然了你也可以去 amin 文件夹下搞
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/ic_wait_dialog" android:pivotX="50%" android:pivotY="50%" />
简单的动画没啥好说的
3、设置 dialog的小背景
在 drawable 文件夹下创建一个 shape 文件
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="10dp" /> <!--不同颜色不同效果哦--> <solid android:color="#3c3c3c" /> </shape>
4、很关键的一步 设置 style
在 value/style.xml 文件下设置 我们的 dialog 的基本属性
<style name="loading_dialog_style" parent="@android:style/Theme.Dialog"> <!--提示框是否有边框--> <item name="android:windowFrame">@null</item> <!--是否为浮动窗口--> <item name="android:windowIsFloating">true</item> <!--是否半透明--> <item name="android:windowIsTranslucent">false</item> <!--去除title--> <item name="android:windowNoTitle">true</item> <!--窗口背景颜色--> <item name="android:windowBackground">@drawable/shape_wait_dialog</item> <!--是否允许对话框的背景变暗--> <item name="android:backgroundDimEnabled">true</item> <!--控制灰度值--> <item name="android:backgroundDimAmount">0.4</item> </style>
5、在使用
private Dialog myDialog; /** * 展示 dialog * * @param context 上下文 * @param waitContent 展示文字 * @param canCancel 是否点击 dialog 周围关闭,是否可以返回键关闭 true 表示可以, false 你懂得 */ private void showMyWait(Context context, String waitContent, boolean canCancel) { @SuppressLint("InflateParams") View view = LayoutInflater.from(this).inflate(R.layout.layout_wait_dialog, null); TextView tvWaitDialog = view.findViewById(R.id.tv_waitDialog); tvWaitDialog.setText(waitContent); myDialog = new Dialog(context, R.style.loading_dialog_style); myDialog.setCancelable(canCancel); myDialog.setContentView(view, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); myDialog.show(); } /** * 主动关闭 dialog */ private void cancelDialog() { if (myDialog != null && myDialog.isShowing()) { myDialog.cancel(); } }
”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
动画必须有(二):悬浮菜单了解一下!
动画必须有(一): 属性动画浅谈githhub传送门 目录 前言 效果图 FloatingActionButton基础 FloatingActionButton实例 最后 前言 悬浮按钮是我非常喜欢的, 可以把最关键的功能放入到悬浮按钮中. 比如日记app里的新建日记, 阅读类app里的喜欢. 稍微处理一下可以将悬浮按钮扩展成悬浮菜单, 来看下实现吧! github直接看源码 效果图 废话不多说, 先看图, 感兴趣再往下看! 悬浮菜单 FloatingActionButton基础 记得导包. compile 'com.android.support:design:26.+' 可以看看谷歌官方介绍. 你会被瞬间圈粉. 然后是官方文档, 这个文档说了如何调用. 搭配Snackbar 官方推荐配合Snackbar来使用, 这都不多说了. 配合Snackbar 显示和隐藏 然后还有就是悬浮按钮的隐藏和显示函数. Button btHide = (Button) findViewById(R.id.bt_hide); btHide.setOnClickListener(new View.OnCl...
- 下一篇
Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果
说到动画效果,一般都会感到很高端,感觉很酷炫;而小菜技术有限,稍复杂的动画效果也需要很多时间处理,但是遇到时间紧任务重的情况该怎么办呢?那就尝试一下 Lottie 吧,酷炫的动画集成却相当简单,还支持跨平台。 Lottie 是个啥? Lottie 是一个开源的动画工具由惊一群 Airbnb 的神人开发。它是一个 IOS/Android/React Native 本地库,渲染后效果动画实时,允许应用程序使用动画一样容易,因为他们使用静态图像。 Lottie 咋集成? build.gradle 中添加 compile 'com.airbnb.android:lottie:2.5.5';小菜需要支持 Android 版本 15,所以需要在 AndroidManifest.xml 中添加如下版本权限: <uses-sdk tools:overrideLibrary="com.airbnb.lottie" /> Tips: 此时还要注意 AndroidManifest.xml 根目录中要添加 xmls:tools,如图: 同步之后即可添加动画效果,在众多酷炫的动画中选择符合自身业务的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7