Android项目中简单易用的加载对话框
来源:互联网 发布:mysql突然高并发 编辑:程序博客网 时间:2024/06/01 09:35
在做项目中,我们经常会遇到下面这几种情形:
(1)在登录时,点击登录按钮,需要向后台验证用户名和密码,为了防止用户等待过长时间,显示个加载对话框。
(2)在进入Activity时,需要从后台加载数据,为了让用户有更好的体验,显示个加载进度框。
一个项目中,用到加载对话框的地方很多,我们可以把它写成一个工具。
实现效果图:
(1)dialog_loading_layout.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.loadingview.MainActivity"> <LinearLayout android:layout_width="140dp" android:layout_height="140dp" android:background="@drawable/loading_progress_bg" android:layout_centerInParent="true" android:padding="8dp" android:gravity="center" android:orientation="vertical"> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/loading_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="加载中,请稍后...." android:textColor="#ffffff"/> </LinearLayout></RelativeLayout>(2)在drawable目录下,建立loading_progress_bg.xml
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="270.0" android:centerColor="#99000000" android:centerY="0.5" android:endColor="#99000000" android:startColor="#99000000"></gradient> <corners android:radius="5dp" /> <padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp"></padding></shape>(3)DialogLoading.java
package com.example.loadingview;import android.app.Dialog;import android.content.Context;import android.widget.TextView;public class DialogLoading extends Dialog { private TextView loadingLabel; public DialogLoading(Context context) { super(context,R.style.Dialog); setContentView(R.layout.dialog_loading_layout); setCanceledOnTouchOutside(false); //dialog弹出后点击屏幕,dialog不消失;点击物理返回键dialog消失 loadingLabel=(TextView)this.findViewById(R.id.loading_text); } public void setDialogLabel(String lable){ loadingLabel.setText(lable); }}(4)在values文件下的styles.xml中
<!--对话框--> <style name="Dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <!--Dialog的windowFrame框为无--> <item name="android:windowIsFloating">true</item> <!--是否浮现在activity之上--> <item name="android:windowIsTranslucent">false</item> <!--是否是半透明--> <item name="android:windowNoTitle">true</item> <!--是否显示title--> <item name="android:windowBackground">@color/transparent</item> <!--设置Dialog的背景--> <item name="android:backgroundDimEnabled">true</item> <!--背景是否模糊显示--> <item name="android:windowSoftInputMode">stateHidden|adjustResize</item> </style> <!--对话框-->(5)在values文件下的colors.xml中
<color name="transparent">#00000000</color>
以上写完了加载对话框的工作,下面我们来使用。
(1)activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="50dp" android:text="点击弹出加载对话框" /></LinearLayout>
(2)MainActivity.java
package com.example.loadingview;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity { private Button alertDialog; private DialogLoading loading; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); alertDialog = (Button) this.findViewById(R.id.btn); alertDialog.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setDialogLabel("正在加载数据。。。"); loading.show(); //loading.dismiss(); 数据加载完,可以调用这个方法 } }); } /** * 设置Dialog的文字 * * @param label */ private void setDialogLabel(String label) { if (loading == null) { loading = new DialogLoading(this); } loading.setDialogLabel(label); }}
这真的是一款很好的工具。
0 0
- Android项目中简单易用的加载对话框
- android中自定义加载的对话框。。。。
- Android中自定义的加载对话框和加载条
- Android中自定义的加载对话框和加载条
- ANDROID中自定义的加载对话框和加载条
- Android中自定义的加载对话框和加载条
- Android中自定义的加载对话框和加载条
- Android中简单提示对话框
- Android 加载对话框的实现
- Android中简单仿iPhone的Dialog对话框
- android加载中对话框,循环,透明
- Android自定义网络加载中对话框
- 【Android自定义View实战】之自定义项目通用的加载等待对话框LoadingDialog
- Android中简单列表对话框问题
- android 项目中使用对话框统一封装
- Android实现Zaker的加载对话框
- [转载]Android实现Zaker的加载对话框
- Android自定义加载对话框
- CTabCtrl设值选项卡标签宽度的方法
- 设计模式之模板方法模式(java)
- 二、java数据类型转换
- orcle学习总结------exception
- 【WC模拟】优美的树
- Android项目中简单易用的加载对话框
- PAT1006题解
- Android之开始启程
- SPOJ SUBXOR(字典树)
- Redis-数据结构-1-简单动态字符串
- 【算法】程序猿不写代码是不对的7
- malloc和menset
- Joda-Time简介(一)
- BZOJ 3622 已经没有什么好害怕的了