Android实现加载对话框

2022-08-02 0 802

本文实例为大家分享了Android实现加载对话框的具体代码,供大家参考,具体内容如下

这里简单说一下两种实现加载对话框的方式:1.使用动画让一个图片旋转 2.使用progressbar。

感觉简单来说,dialog就是一个弹出的window,把自己定义的布局放置到window里面就可以了,加载对话框就是有个加载的动画,核心的地方就是实现这个动画,所所以方法  可以有,对图片添加动画,或者使用progressbar。

第一种方式:使用动画让一个图片旋转

先看一下布局:

<&#63;xml version="1.0" encoding="utf-8"&#63;> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_="" android:background="@drawable/dialog_bg_while" android:orientation="vertical"> <imageview android:layout_="" android:id="@+id/loading_dialog_pic" android:layout_gravity="center_horizontal" android:layout_margintop="15dp" android:background="@drawable/loading"> <textview android:layout_="" android:layout_gravity="center_horizontal" android:layout_margintop="10dp" android:text="正在加载..."> </textview></imageview></linearlayout>

然后自定义Alertdialog,并对图片添加旋转动画:

public class LoadingDialog extends AlertDialog { private final String DEFAULT_TEXT="正在加载"; private ImageView mImageview; private TextView mTextView; private LinearLayout mLayout; private String mText; protected LoadingDialog(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); mLayout=(LinearLayout) LinearLayout.inflate(getContext(), R.layout.loading_dialog, null); mImageview=(ImageView) mLayout.findViewById(R.id.loading_dialog_pic); mTextView=(TextView) mLayout.findViewById(R.id.loading_dialog_text); loadanimation(); getWindow().setContentView(mLayout); } private void loadanimation() {//对图片添加旋转动画 // TODO Auto-generated method stub Animation anim=AnimationUtils.loadAnimation(getContext(), R.anim.loading_dialog_anim); LinearInterpolator lin = new LinearInterpolator(); anim.setInterpolator(lin); mImageview.setAnimation(anim); } }

看一下xml的动画:

1
<&#63;xml version="1.0" encoding="utf-8"&#63;> <set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:duration="1500" android:pivotx="50%" android:pivoty="50%" android:fromdegrees="0.0" android:repeatcount="infinite" android:todegrees="-358"> </rotate></set>

第二种方式:使用progressbar

首先是一个animation-list:

1
<&#63;xml version="1.0" encoding="utf-8"&#63;> <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/loading1" android:duration="100"> <item android:drawable="@drawable/loading2" android:duration="100"> <item android:drawable="@drawable/loading3" android:duration="100"> <item android:drawable="@drawable/loading4" android:duration="100"> <item android:drawable="@drawable/loading5" android:duration="100"> <item android:drawable="@drawable/loading6" android:duration="100"> <item android:drawable="@drawable/loading7" android:duration="100"> <item android:drawable="@drawable/loading8" android:duration="100"> </item></item></item></item></item></item></item></item></animation-list>

看一下布局的实现:

1
<&#63;xml version="1.0" encoding="utf-8"&#63;> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_="" android:background="@drawable/dialog_bg_while" android:orientation="vertical"> <progressbar android:layout_="" android:layout_gravity="center_horizontal" android:layout_margintop="10dp" android:indeterminatedrawable="@drawable/loading_animation_list" android:indeterminateduration="1500"> <view android:layout_="" android:background="#00BCD4"> <textview android:id="@+id/loading_dialog_text" android:layout_="" android:layout_gravity="center_horizontal" android:layout_margintop="10dp" android:text="正在加载..."> </textview></view></progressbar></linearlayout>

然后自定义一个alertdialog:

1
public class LoadingDialog extends AlertDialog { private final String DEFAULT_TEXT="正在加载"; private TextView mTextView; private LinearLayout mLayout; private String mText; protected LoadingDialog(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); mLayout=(LinearLayout) LinearLayout.inflate(getContext(), R.layout.loading_dialog, null); mTextView=(TextView) mLayout.findViewById(R.id.loading_dialog_text); WindowManager m=(WindowManager) getContext().getSystemService(getContext().WINDOW_SERVICE); int windowwith=m.getDefaultDisplay().getWidth(); int w=windowwith*3/5; int h=300; getWindow().setLayout(w, h);//设置对话框窗体大小 getWindow().setContentView(mLayout); } }

 

收藏 (0) 打赏

感谢您的支持,我们会继续努力的!

打开支付宝/微信/QQ扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有教学内容和资源均来源于本站原创和网络收集以及用户自主上传,如有侵权请带证联系本站客服进行处理!邮箱:team@lcwl.fun
2. 对于非本站原创的资源不保证所提供下载资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系本站客服处理,有奖励!
3. 除本站原创教学或资源外其余资源您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 本站原创资源如需商用还请申请商业授权,否则本站有权追究其法律责任!
5. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有学币奖励额外收入!

凌晨资源网 前端开发 Android实现加载对话框 https://www.lingchenw.cn/jishu/6819.html

常见问题
  • 本站所有付费教程均可单独付费或者开会员学习,自己购买或者开了会员就可以学习,来凌晨学院报名学习送会员,并且有讲师一对一辅导培训教学,师生互动化,定期布置作业等
查看详情
  • 本站所有资源版权均属于原作者所有,资源中标注可商用的可以商用的代表是本团队自主研发公布可商用的产品,未标注可商用所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

学习手机编程软件开发
手机编程软件开发

你知道吗?用手机也能开发制作软件,满足自己的编程心,做属于自己的软件

报名学习
自媒体短视频
副业做自媒体短视频

想做自媒体短视频剪辑给自己多一份副业,只需一部手机你也可以

报名学习
搭建网站必备云互联主机
链未云互联

搭建网站,后台云服务等必备云服务器互联主机,IDC云主机

现在使用
Fa快捷助手
用手点一点就能开发做软件

不用记编程语法,不用一行一行手敲代码,用手点一点就能开发制作软件

点击下载