[置顶] Android 平板上 同时显示多个进度框 正在加载中

      因为最近做的是平板的项目,由于尺寸很大,所以一个界面上需要同时加载多个界面,而这多个界面又是从服务器拿数据的,耗时比较久,所以需要使用到圆形的进度条,一开始是使用系统的进度条,然后后台执行线程拿数据,但是弹出系统的进度框,就会使背景无法点击,而且变暗,这不符合需求,需要在每个获取的部分区域,加载一个进度框,其他部分可以点击,搜了一下使用原生的进度框无法实现这样的功能,看来只能自定义了,找到一位前辈写的使用动画效果做的view的例子,连接如下:

正在加载中 这位博主的实现原理是选择一张带有圆形的图片,当数据加载完,隐藏相应的布局就可以了,在他的基础上,我修改了一点,基本上是这个意思,如下代码:

/**
	 * 
	 * @Title: loadNowProsss
	 * @Description: 数据加載中,彈出自定義的view,以便於同時顯示4個對話框
	 * @param 
	 * @return void
	 * @throws  
	 */
	public void loadNowProsssSecondCycle() {
		// 加载动画
		Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this,
				R.anim.animation);
		// 使用ImageView显示动画
		chart_second_imagecycle.startAnimation(hyperspaceJumpAnimation);

		new Thread() {
			@Override
			public void run() {
				try {
					//加载数据,耗时操作

				} finally {
					Runnable work = new Runnable() {

						@Override
						public void run() {
                                                        //获取对话框的布局id,以便于隐藏掉进度框
							chart_second_dialogview.setVisibility(View.GONE);
						}
					};
					handler.post(work);
				}
			}
		}.start();
	}
对话框的布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/chart_second_dialogview"
    android:layout_width="180dip"
    android:layout_height="60dp"
    android:layout_alignParentTop="true"
    android:layout_marginTop="85dp"
    android:layout_marginBottom="45dp"
    android:layout_marginLeft="75dp"
    android:layout_marginRight="25dp"
    android:background="@drawable/allboard"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/chart_second_imagecycle"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_marginLeft="20dp"
        android:padding="2dip"
        android:src="@drawable/waiting_up" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/chart_second_imagecycle"
        android:gravity="center"
        android:text="@string/dialogchart_text"
        android:textSize="16sp" />

</RelativeLayout>

给弹出的view周围加上边框,如下allboard.xml:

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

    <!-- 连框颜色值 -->
    <item>
        <shape>
            <solid android:color="#000000" />

            <stroke
                android:width="0.1dp"
                android:color="#ffa8abad" />
        </shape>
    </item>

</layer-list>



这样就可以避免使用系统的,也不用自定义一些控件就可以实现,有问题可以探讨。


你可能感兴趣的:(android,动画,控件)