等待对话框(网络请求等待进度条效果)

一、创建圆角图片(作为对话框的背景)

1.创建drawable文件(若没有该文件),在其下创建Android的xml文件(名称progress_bg.xml)

2.直接上代码

<?xml version="1.0" encoding="UTF-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

    <!-- 填充的颜色 --> 
    <solid android:color="#FFFFFF" /> 

    <!-- 设置按钮的四个角为弧形, 并设置弧形的半径 --> 
    <corners android:radius="5dp" /> 
      
<!-- padding:Button里面的文字与Button边界的间隔 --> 
<padding 
   android:left="10dp" 
   android:top="10dp" 
   android:right="10dp" 
   android:bottom="10dp" 
/> 

<!-- 设置边框宽度和颜色 -->
 <stroke android:width="10dp"
     android:color="@color/black"/>

</shape>

二、为对话框创建样式

在values文件夹下的styles.xml中插入代码:(不清楚样式的含义可以参考http://blog.csdn.net/dyllove98/article/details/8841602)

<!-- 《等待进度》对话框样式 -->
    <style name="myDialog" parent="@android:style/Theme.Dialog">
        <!-- 边框 -->
        <item name="android:windowFrame">@null</item>
         <!-- 是否浮现在activity之上 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 半透明 -->
        <item name="android:windowIsTranslucent">true</item>
        <!-- 没有标题 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 背景透明 -->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 模糊 -->
        <item name="android:backgroundDimEnabled">true</item>
        <!-- 对话框是否有遮盖 -->
        <item name="android:windowContentOverlay">@null</item>
    </style>

 


三、创建自定义等待对话框

1.dialog的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="20dp"
    android:paddingRight="20dp" >

    <LinearLayout
        android:id="@+id/body"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/progress_bg"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:paddingBottom="20dp"
        android:paddingTop="20dp" >

        <ImageView
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:contentDescription="@string/app_name"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/message"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            android:minWidth="180dip"
            android:paddingLeft="10dp"
            android:textColor="@color/black" />
    </LinearLayout>

</LinearLayout>


2.java代码

 
<pre class="java" name="code">private Dialog createProgressDialog(String message){
		//创建对话框(为对话框设置样式)
		Dialog mDialog = new Dialog(this, R.style.myDialog);
		//指定对话框的布局
		View view = LayoutInflater.from(this).inflate(R.layout.progress_dialog, null, false);
		//为对话框中的控件填充内容(如文字)
		TextView tvMessage = (TextView) view.findViewById(R.id.message); 
		tvMessage.setText(message);
		//为对话框设置布局
		mDialog.setContentView(view);
		//设置触屏不会取消
		mDialog.setCanceledOnTouchOutside(false);
		return mDialog;
	}

 

 

四、显示、关闭等待对话框

//显示自定义等待对话框
	private void showDialog(String message){
		//若不存在,则创建
		if (mDialog == null) {
			mDialog = createProgressDialog(message);
		}
		//若没有正在显示,则显示
		if (!mDialog.isShowing()) {
			mDialog.show();			
		}
	}
	//关闭自定义等待对话框
	private void closeDialog(){
		//若存在,且正在显示中,则关闭
		if (mDialog!=null && mDialog.isShowing()) {
			mDialog.dismiss();
		}
		//释放内存
		mDialog = null;
	}


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值