Android自定义类似ProgressDialog效果的Dialog
2019独角兽企业重金招聘Python工程师标准>>>
Android自定义类似ProgressDialog效果的Dialog.
方法如下:
1.首先准备两张自己要定义成哪样子的效果的图片和背景图片(也可以不要背景)。
如我要的效果:
2.定义loading_dialog.xml布局文件(这里你也可以按自己的布局效果定义,关键是要有个imageView):
[html] view plaincopy
<EMBED id=ZeroClipboardMovie_1 height=18 name=ZeroClipboardMovie_1 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=1&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_view"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minHeight="60dp"
android:minWidth="180dp"
android:gravity="center"
android:padding="10dp"
android:background="@drawable/loading_bg">
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/publicloading"
/>
<TextView
android:id="@+id/tipTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="数据加载中……"/>
</LinearLayout>
3.定义一个loadingDialog中imageView转动的动画:loading_animation.xml
[html] view plaincopy
<EMBED id=ZeroClipboardMovie_2 height=18 name=ZeroClipboardMovie_2 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=2&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
<?xmlversion="1.0"encoding="utf-8"?>
<setandroid:shareInterpolator="false"xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="+360"
android:duration="1500"
android:startOffset="-1"
android:repeatMode="restart"
android:repeatCount="-1"/>
</set>
4.定义dialog的style.
[java] view plaincopy
<EMBED id=ZeroClipboardMovie_3 height=18 name=ZeroClipboardMovie_3 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=3&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
<!-- 自定义loading dialog -->
<style name="loading_dialog"parent="android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/loading_bg</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
5.写点创建Dialog的代码,你可以自己封装成一个方法。
[java] view plaincopy
<EMBED id=ZeroClipboardMovie_4 height=18 name=ZeroClipboardMovie_4 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=4&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
/**
* 得到自定义的progressDialog
* @param context
* @param msg
* @return
*/
publicstaticDialog createLoadingDialog(Context context, String msg) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载view
LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);// 加载布局
// main.xml中的ImageView
ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);
TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字
// 加载动画
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(
context, R.anim.load_animation);
// 使用ImageView显示动画
spaceshipImage.startAnimation(hyperspaceJumpAnimation);
tipTextView.setText(msg);// 设置加载信息
Dialog loadingDialog = newDialog(context, R.style.loading_dialog);// 创建自定义样式dialog
loadingDialog.setCancelable(false);// 不可以用“返回键”取消
loadingDialog.setContentView(layout, newLinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));// 设置布局
returnloadingDialog;
}
最后来张整体的效果图:
转载于:https://my.oschina.net/rainy123/blog/293153
Android自定义类似ProgressDialog效果的Dialog相关推荐
- Android自定义底部带有动画的Dialog
Android自定义底部带有动画的Dialog 效果图 先看效果图,是不是你想要的呢 自定义Dialog package --.view;import android.app.Dialog; impo ...
- Android自定义底部弹出窗-dialog(2种实现分析+源码)
Android自定义底部弹出窗-dialog(2种实现分析+源码) 上线项目功能抽取,在项目开发中,我们会在许多地方会用到底部自定义弹窗,比如设置:个人账户退出,切换,照片的拍照或者相册的调出,或者一 ...
- [Android]自定义View带效果的滚动数字
[Android]自定义View带效果的滚动数字 @Author GQ 2016年07月29日 一个可以让数字滚动的View,可以自定义参数,是想要的那种效果! 原文github地址 效果图 Andr ...
- 自定义实现ProgressDialog样式的Dialog
1. 建立一个my_progress_dialog.xml布局文件 <?xml version="1.0" encoding="utf-8"?> ...
- android 自定义view 动画效果,Android自定义view实现阻尼效果的加载动画
效果: 需要知识: 1. 二次贝塞尔曲线 2. 动画知识 3. 基础自定义view知识 先来解释下什么叫阻尼运动 阻尼振动是指,由于振动系统受到摩擦和介质阻力或其他能耗而使振幅随时间逐渐衰减的振动,又 ...
- Android 自定义View 时钟效果
Android 自定义时钟浅析 最有趣,最好玩的东西,一定是高度灵活的东西,今天我们以自定义View的方式来实现一个表盘样式的时钟,并自动设置为当前时间,因为感觉网上的直接能运行的代码很少,思路也很麻 ...
- android 自定义透明progressdialog,在android中自定义progressdialog动态创建
我动态地在asynctask中创建了progressdialog.我为我的应用程序使用自定义样式.当我这样做,我的progressdialog风格改为白色我需要我的黑色默认风格与白色文本. 我的jav ...
- android 自定义view 动画效果,Android自定义view----音乐播放动画
先给大家看一下效果,因为我也不知道这个东西具体叫什么,标题上面写的是"音乐播放动画",可能描述的不太准确. 效果图.gif 前言 最近项目中做了一个音频播放的功能,播放条上需要一个 ...
- Android自定义实现点赞效果!
前言 今天朋友看了HenCoder的自定义View后说,HenCoder对自定义View讲的不错.实践中仿写即刻的点赞你有思路吗,你不实现一下?二话不说,看了朋友手机效果,对他说:实现不难,用到了位移 ...
最新文章
- 64位oracle客户端_开发小记-golang连接Oracle数据库配置
- EveryNote使用说明,好用的文件备注搜索工具
- 用Heartbeat实现web服务器高可用
- java流程控制if_java程序流程控制(分支结构之 if-else)
- 大数据可视化的价值体现在哪
- FRR -- CLI简要分析
- 科沃斯扫地机器人电路原理图_科沃斯扫地机器人不工作故障维修(CEN550)
- Android实现友盟分享小程序
- linux下c语言读写文件操作,Linux下C语言之文件操作
- python openpyxl冻结首行单元格
- linux 设置mail
- python PIL使用记录
- 三年级计算机怎么进入到游戏,三年级开始,带孩子玩7个游戏训练成“最强大脑”...
- Android逆向:去除RE管理器4.41及车来了广告
- Java中的四种XML解析方式(一)
- “杏”运有你!共赏这乡美景
- 基于ODBC的MFC与sql_server2008r2连接教程和错误解决方法
- 鸿蒙系统用什么用,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可
!【手机吧】_百度贴吧...
- 浙江计算机二级考哪些专业好,浙江省计算机二级都考什么
- 万年历java课程设计报告_java《万年历系统》课程设计报告附源码.doc
热门文章
- vs2008编写第一个Windows程序
- 在线字符串长度计算,字符串统计工具
- 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)
- 《空中交通管理基础》-潘卫军主编-第三章-航空器和飞行高度层
- 64. 合并排序数组 II
- tp中url地址大小写问题
- highCharts图表入门简介
- 设计模式 - Prototype模式(原型模式)
- ASP.net报错汇总: This application is currently offline.
- 使用某些 DOCTYPE 时会导致 document.body.scrollTop 失效